1 Отредактировано Mitrandir (14-02-2010 18:47:51)

Тема: Программируем светодиод

Ради забавы разобрался как создавать для светодиода n810 собственные паттерны, то есть схемы индикации. Заменил стандартное моргание при получении нового IM и почты, на красивые разноцветные переливания. Кстати, таким же образом можно сделать разные индикации для почты и мгновенных сообщений, а то по умолчанию они одинаковы и это неудобно.

Наклепал три разных, переливающихся паттерна:

PatternMit1=30;1;0;40ff5000e00402ff02ffe200027f027f0000;4000e080027f027f5000e00802ff02ff0000;4000e100027f027f5000e00202ff02ff0000
PatternMit2=30;1;0;40ffe20002ff02ff027f027fe0040000;40ff02ff02ff027f027fe008e0800000;4000027f027fe002e10002ff02ff0000
PatternMit3=30;1;0;40ffe10007ff07ffe008e100077f077fe0080000;4000077f077fe002e20007ff07ffe002e2000000;4000e080077f077fe004e08007ff07ffe0040000

Как установить:

  1. Из-под рута открываем файл /etc/mce/mce.ini

  2. Находим раздел [LEDPatternNJoyRX44] если у вас N810 или [LEDPatternNJoyRX48] N810WiMax

  3. Ниже в этом разделе находим строчки PatternCommunicationCall=...  PatternCommunicationChat=... PatternCommunicationEmail=... и другие

  4. В нужной строке меняем все что после знака равенства на свою строку, например, на одну из тех, что я выложил выше

  5. Делаем /etc/init.d/mce restart или просто перезагружаемся

Если есть желающие научиться создавать свои паттерны -- пишите, сочиню инструкцию.
Если есть идеи насчет того, как бы вы хотели чтобы мигал ваш светодиод -- пишите, могу создать паттерн по вашему описанию.

N̶8̶0̶0̶ + N̶8̶1̶0̶ + N̶9̶0̶0̶ + N̶9̶5̶0̶ + N̶9̶ ̶C̶y̶a̶n̶ + N̶9̶ ̶B̶l̶a̶c̶k̶

2

Re: Программируем светодиод

А яркость диода тоже регулируется?
Сколько всего паттернов можно устанавливать?

Nokia n810 Maemo OS2008 5.2010.33-1
Nokia N9 1.3

3

Re: Программируем светодиод

На N800, наверное, не получится поиграться - там же вроде только 1 цвет...

Samsung Galaxy Tab @CM9 ICS  [Utel 3G] + Motorola E770v [life:)] + Motorola HT820 (A2DP) + [в архиве: Nokia N810 WiMAX Edition + Nokia N800 (R.I.P.) +  Nokia 770]

4 Отредактировано Mitrandir (14-02-2010 19:29:08)

Re: Программируем светодиод

В N810 на самом деле три светодиода, и для каждого из трех устанавливается яркость в диапазоне 0...255, и задаются плавные изменения яркости с течением времени. Соответственно теоретически можно создать абсолютно любой цвет. На практике, светодиоды имеют немного неравную яркость с перекосом в сторону голубого, но наверное это можно компенсировать, уменьшив яркость синего и зеленого.

Кстати, для сравнения - при включении/выключении зажигаются все три светодиода на максимальную яркость.

Паттернов может быть сколько угодно, с любыми названиями, но система использует для своих целей следующие имена:
PatternError
PatternDeviceOn
PatternDeviceSoftOff
PatternPowerOn
PatternPowerOff
PatternCommunicationCall
PatternCommunicationChat
PatternCommunicationEmail
PatternCommonNotification
PatternWebcamActive
PatternBatteryCharging
PatternBatteryFull

Плюс в этом файле  есть еще неиспользуемые PatternPsychedelia и PatternExample, они там просто для примера.

Можно добавлять туда и свои паттерны с любыми именами, и потом активировать их через D-Bus

N̶8̶0̶0̶ + N̶8̶1̶0̶ + N̶9̶0̶0̶ + N̶9̶5̶0̶ + N̶9̶ ̶C̶y̶a̶n̶ + N̶9̶ ̶B̶l̶a̶c̶k̶

5

Re: Программируем светодиод

murabel
Да, в n800 только один светодиод, но можно менять ему временные параметры мигания и вроде бы яркость (15 уровней).

N̶8̶0̶0̶ + N̶8̶1̶0̶ + N̶9̶0̶0̶ + N̶9̶5̶0̶ + N̶9̶ ̶C̶y̶a̶n̶ + N̶9̶ ̶B̶l̶a̶c̶k̶

6

Re: Программируем светодиод

Mitrandir, а можно написать такое приложение, которое бы вместо «PatternDeviceOn» (т.е. обычного голубого мигания) мигала градиентом от красного до зелёного в зависимости от заряда батареи? Т.е. при полном заряде идёт аккуратное мигание зелёным, при 50% откровенный жёлтый и при 10% красный. Естественно, не только три мигания, а цвет будет менятся каждые десять процентов от зелёного к жёлтому и красному в течении разряда и в обратную сторону в течении заряда. Таким образом, увидев на столе таблетку помигивающую красным можно не включая её понять что она голодная...

Nokia n810 Maemo OS2008 5.2010.33-1
Nokia N9 1.3

7

Re: Программируем светодиод

блин, а как закодить чтобы когда мессага в qutim  приходит, диод моргал ?

8

Re: Программируем светодиод

romeov пишет:

блин, а как закодить чтобы когда мессага в qutim  приходит, диод моргал ?

Если бы было известно как

Mitrandir пишет:

и потом активировать их через D-Bus

, можно было б подумать

N800(4.2008.43-7) + Kingston microSDHC 4Gb Class 4

9 Отредактировано Mitrandir (15-02-2010 09:56:11)

Re: Программируем светодиод

DJArty

dbus-send --system --print-reply --type=method_call --dest=com.nokia.mce /com/nokia/mce/request com.nokia.mce.request.req_led_pattern_activate string:PatternXXX
dbus-send --system --print-reply --type=method_call --dest=com.nokia.mce /com/nokia/mce/request com.nokia.mce.request.req_led_pattern_deactivate string:PatternXXX

Но это неправильный способ, имхо, т.к. лучше воспользоваться штатным API для нотификаций. Хотя возможны варианты.

N̶8̶0̶0̶ + N̶8̶1̶0̶ + N̶9̶0̶0̶ + N̶9̶5̶0̶ + N̶9̶ ̶C̶y̶a̶n̶ + N̶9̶ ̶B̶l̶a̶c̶k̶

10

Re: Программируем светодиод

Kroll
Интересная идея. Теоретически, возможно. Но не подменяя стандартное мигание, а создав свои 10 паттернов, и написав маленький демон, который будет включать нужный в зависимости от уровня батареи.

N̶8̶0̶0̶ + N̶8̶1̶0̶ + N̶9̶0̶0̶ + N̶9̶5̶0̶ + N̶9̶ ̶C̶y̶a̶n̶ + N̶9̶ ̶B̶l̶a̶c̶k̶

11

Re: Программируем светодиод

Mitrandir, было бы здорово иметь такую штуку. Коли LED есть — пусть работает на все сто!)

Nokia n810 Maemo OS2008 5.2010.33-1
Nokia N9 1.3

12

Re: Программируем светодиод

Kroll,Mitrandir
Для N800 тоже можно адаптировать идею индикации заряда. Можно выдавать серию из нескольких коротких вспышек раз в N секунд в зависимости от заряда батареи (я такое у гарнитуры Jabra JX20 подсмотрел):
76-100% - 4 вспышки
51-75%   - 3
26-50% - 2
X-25% - 1 (где X соответствует уведомлению "Батарея разряжена")
0-X% - 1 длинный сигнал с меньшим периодом N (если так возможно)
Соответственно при зарядке тоже можно сделать подобную индикацию, только одиночный сигнал чтоб был от 0 до 25%, а при полной зарядке - либо постоянное свечение, либо длинные одиночные сигналы, как при разряженной батарее.
Только нужно интервал между сериями вспышек либо подобрать оптимально, либо дать возможность настройки.

Samsung Galaxy Tab @CM9 ICS  [Utel 3G] + Motorola E770v [life:)] + Motorola HT820 (A2DP) + [в архиве: Nokia N810 WiMAX Edition + Nokia N800 (R.I.P.) +  Nokia 770]

13

Re: Программируем светодиод

murabel светодиод тоже разряжает акуулятор, если батарейка практически на нуле, то длинное свечение с меньшим периодом покоя будет критично.

n810 Diablo + miniSDHC 4Gb Kingston + наклейка "intel Core 2 Duo inside"

14

Re: Программируем светодиод

Влад, ну, значит, наоборот - короткие вспышки с более длинным интервалом.

Samsung Galaxy Tab @CM9 ICS  [Utel 3G] + Motorola E770v [life:)] + Motorola HT820 (A2DP) + [в архиве: Nokia N810 WiMAX Edition + Nokia N800 (R.I.P.) +  Nokia 770]

15

Re: Программируем светодиод

Что-то мне кажется, что с одноцветным светодиодом идея теряет привлекательность... Мне лично будет проще ткнуть в экран, чтобы он загорелся и посмотреть на иконку батарейки, чем некоторое время смотреть на девайс и считать вспышки. Хотя попробовать, разумеется, можно.
Может попробовать задействовать яркость? Хотя, боюсь, яркость сильно зависит от окружающего освещения

N̶8̶0̶0̶ + N̶8̶1̶0̶ + N̶9̶0̶0̶ + N̶9̶5̶0̶ + N̶9̶ ̶C̶y̶a̶n̶ + N̶9̶ ̶B̶l̶a̶c̶k̶

16

Re: Программируем светодиод

Mitrandir пишет:

Мне лично будет проще ткнуть в экран, чтобы он загорелся и посмотреть на иконку батарейки, чем некоторое время смотреть на девайс и считать вспышки.

Согласен, для n800 нужно что-то другое придумать, чем считывать эту морзянку.

Nokia n810 Maemo OS2008 5.2010.33-1
Nokia N9 1.3

17

Re: Программируем светодиод

идея для маниаков. Читаешь книжку, а перед мордой огонек мерцает.  roll

Nokia N810+PocketBook360+Ainol Fire+Holux 1000+Iriver Clix2+huawei U8950D+Nikon D80+FujiFilm F70 EXR+Acer 722

18

Re: Программируем светодиод

А он мерцает только при выключенном экране smile

N̶8̶0̶0̶ + N̶8̶1̶0̶ + N̶9̶0̶0̶ + N̶9̶5̶0̶ + N̶9̶ ̶C̶y̶a̶n̶ + N̶9̶ ̶B̶l̶a̶c̶k̶

19

Re: Программируем светодиод

Mitrandir пишет:

Что-то мне кажется, что с одноцветным светодиодом идея теряет привлекательность... Мне лично будет проще ткнуть в экран, чтобы он загорелся и посмотреть на иконку батарейки, чем некоторое время смотреть на девайс и считать вспышки.

В принципе, да. Да и раздражать будет ночью (я таблетку на ночь не выключаю).

Может попробовать задействовать яркость? Хотя, боюсь, яркость сильно зависит от окружающего освещения

Да нет, не стоит. Наверное, вообще это была плохая идея.
Хотя индикацию во время зарядки я бы все-таки сделал, только при выключенной таблетке, наверное, она работать не будет? Тогда тоже смысл теряется.

Samsung Galaxy Tab @CM9 ICS  [Utel 3G] + Motorola E770v [life:)] + Motorola HT820 (A2DP) + [в архиве: Nokia N810 WiMAX Edition + Nokia N800 (R.I.P.) +  Nokia 770]

20

Re: Программируем светодиод

murabel пишет:

Хотя индикацию во время зарядки я бы все-таки сделал, только при выключенной таблетке, наверное, она работать не будет?

В саспенде (или что это, когда блокируешь клавиши и таблетка спать идёт) диод мигает, а вот после применения poweroff или soft poweroff — мигать ничего не будет.
Я свою таблетку именно выключенной держал только пару раз, когда искал как выйти из циклической перезагрузки...

Nokia n810 Maemo OS2008 5.2010.33-1
Nokia N9 1.3

21

Re: Программируем светодиод

На счет soft poweroff не знаю, может и будет мигать, т.к. на самом деле устройство-то не спит. Кроме того, не знаю как на n800, но в n810 за светодиоды отвечает отдельный контроллер.
По идее, когда таблетка выключена, если включить ее в зарядку, то втихаря загружается система. Но до какого уровня она загружается -- не знаю. И не знаю можно ли заставить на этом уровне работать что-то свое.

N̶8̶0̶0̶ + N̶8̶1̶0̶ + N̶9̶0̶0̶ + N̶9̶5̶0̶ + N̶9̶ ̶C̶y̶a̶n̶ + N̶9̶ ̶B̶l̶a̶c̶k̶

22

Re: Программируем светодиод

Mitrandir пишет:

По идее, когда таблетка выключена, если включить ее в зарядку, то втихаря загружается система. Но до какого уровня она загружается -- не знаю. И не знаю можно ли заставить на этом уровне работать что-то свое.

Загружается всё кроме иксов, по ходу. Ну или чуть меньше. Так как после того как включить её, находящуюся в зарядке, она просто покажет лого Нокии и начнёт грузить хилдон, без всяких полос загрузок и т.п. Если судить по времени такого включение, то это всего лишь 30% от обычного времени включения.

П.С. В режиме Soft Poweroff таблетка сигналит зелёным светодиодом и, причём, заметно чаще, чем лунным цветом при обычном простое.
Кстати, что тогда вообще представляет собой Soft Poweroff?

Nokia n810 Maemo OS2008 5.2010.33-1
Nokia N9 1.3

23

Re: Программируем светодиод

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

N̶8̶0̶0̶ + N̶8̶1̶0̶ + N̶9̶0̶0̶ + N̶9̶5̶0̶ + N̶9̶ ̶C̶y̶a̶n̶ + N̶9̶ ̶B̶l̶a̶c̶k̶

24

Re: Программируем светодиод

Mitrandir пишет:

На счет soft poweroff не знаю, может и будет мигать, т.к. на самом деле устройство-то не спит.

Kroll пишет:

В режиме Soft Poweroff таблетка сигналит зелёным светодиодом и, причём, заметно чаще, чем лунным цветом при обычном простое.

На N800 в Soft Poweroff мигает светодиод, достаточно часто. И, кстати, абсолютно зря, ИМХО, ибо раздражает. Можно это мигание убрать как-то? Мне на самом деле пофиг, выключена таблетка или в Soft Poweroff - включается-то она из обоих режимов одинаково (длительным нажатием кнопки питания). А то, что в Soft Poweroff она потихоньку садится - так я в курсе, незачем мне лишний раз напоминать миганием.

Samsung Galaxy Tab @CM9 ICS  [Utel 3G] + Motorola E770v [life:)] + Motorola HT820 (A2DP) + [в архиве: Nokia N810 WiMAX Edition + Nokia N800 (R.I.P.) +  Nokia 770]

25

Re: Программируем светодиод

Убрать в панели управления на вкладке светодиодов галочку  "Когда устройство включено" smile

N̶8̶0̶0̶ + N̶8̶1̶0̶ + N̶9̶0̶0̶ + N̶9̶5̶0̶ + N̶9̶ ̶C̶y̶a̶n̶ + N̶9̶ ̶B̶l̶a̶c̶k̶