Телефон: стандартизация

- А чем отличается этот сотовый телефон, вот от этого?

- Ну… первый это вообще-то фотооаппарат, а второй - это мп3 плеер. ©

У каждого телефона обязательно должно быть:

  1. Охуенный дисплей (читай AMOLED)
  2. ФОНАРЕГ! → промигать, что напишу морзянкой! :)
  3. Чтобы батарейки на дольше хватало, хотя бы на часов 12 разговоров.
  4. Виброзвонок хороший и крепкий корпус → желательно огнеупорный? и водостойкий?
  5. Слот для карт microSD
  6. Bluetooth версии не ниже 2.0, с поддержкой A2DP+AVRCP.
  7. Стандартный аудиовыход 3.5мм
  8. Разъём мini USB и аппарат от него заряжаться → без установки ебучих драйверов!
  9. Человеческая камера с человеческой оптикой от 3 мегапикселей
  10. GPS + Exif → и вообще нормальные exif теги, а не как у самсунгов!
  11. Календарь + Контакт в адресной книге → Напоминалка о Дне Рождения
  12. Фото + GPS → Место, где была сделана фотография в exif тегах
  13. GPS + Контакт в адресной книге → поставить адрес контакта, адрес его работы и тп
  14. SMS + Контакт = Расположить СМС в виде чата
  15. GPS + Журнал вызовов = Показать откуда делался вызов → сомнительно, но для алиби может пригодиться :D
  16. Заметки + Контакт = мобильная CRM, оставлять любые заметки о человеке, от пожелания на ДР заканчивая тем, что должен 100 баксов → в любом количестве и сохраняя прошлые
  17. Контакт + Напоминалки → напоминание позвонить → позвонить и назначить встречу → приехать к контакту домой, отправить смс → или же показывать напоминание при входящем, при входящей смс от контакта
  18. Напоминалки + GPS = напоминать что надо сделать, когда телефон будет в заданном месте
  19. Интернет + Контакт = агрегация типа friendfeed, rss с домашней странички, твиттер, плюрк?
  20. SMS + GPS → Отправить смс по прибытии в заданный район → Доча, отправь смс как доберешься → Отличный сервис для террористов, кстати :D
  21. GPS + место → Активировать соответствующий профиль в зависимости от того, где находишься → на улице вибра, дома громко. → Можно пойти дальше и по динамике движения анализировать машина это или общественный транпорт → в машине громкий режим → в транспорте вибра, т.д.
  22. Синхронизация евентов и контактов с Google Calendar / Outlook → без всяких коннекторов и софта! → аналог → MyPhone (myphone.microsoft.com)
  23. Ставить мелодию в зависимости от времени года, праздников → Например на раждество песенку из соутшпарка → Mr Garrison Мери факинг крисмас ту ю!
  24. Когда я сплю (спец. профиль) → то рингтон играет только при звонках с определенной группы → например близкие люди
  25. Акселерометр + Bluetooth → взять два устройства → сложить вместе и встряхнуть → сопряжение (pairing) → И никаких ПИНов! → Rene Mayrhofer → статья 2007 года → «Shake Well Before Use: Authentication Based on Accelerometer Data» → скачать PDF'ку
  26. Активировать bluetooth при попадании в заданную область. И дезактивировать при попадании в другую.
  27. Напоминалка, срабатывающая при встрече с конкретным человеком (распознаётся по ID блютуз-модуля в его телефоне) → Например, «дать Васе по морде» или «вернуть Маше долг».
  28. Изменение профиля в зависимости от положения телефона. Экраном вниз - совещание, только вибра. Вертикально - задний карман джинс → громкие звонки. Горизонтально на боку - холдер в автомобиле, включить Bluetooth-гарнитуру.
  29. Уменьшение громкости звонка, если датчик освещенности рапортует о нахождении в полной темноте → дома → оно и правильно: ночью ведь тоже темно, а истерические вопли звонка в стандартной советской коробке, называемой квартирой, слышны даже соседям.

Зарядки

Довольно частая проблема с устройствами, заряжающимися от USB → их нежелание заряжаться от чего-либо, кроме компьютера и фирменных зарядок. Хотя, казалось бы, USB как USB. Фокус здесь в том, что правильно работающему устройству необходимо уметь отличать просто зарядник от USB-порта компьютера → от последнего оно не имеет права потреблять более 100 мА, пока ОС не разрешила ему это сделать. Очевидно, что от зарядника ждать каких-то разрешений несколько глупо, поэтому на нём надо сразу врубать полную нагрузку.

Решается это крайне просто, без каких-либо хитрых микроконтроллеров: в заряднике часть контактов USB-разъёма закорачивается друг на друга, так что с точки зрения устройства USB-разъём зарядника радикально отличается от USB-разъёма компьютера. Например, у Palm Treo Pro в кабеле зарядника закорочены друг на друга D+ и D– (центральные два контакта в 4-контактном USB), у Motorola схема чуть сложнее. То есть, например, любой переходник «прикуриватель→USB» или «розетка→USB» адаптируется под зарядку пальмы за три минуты и два движения паяльником.

Читать питание от USB.

Первое и самое главное: нет никаких общепринятых и реально используемых способов проверки или ограничения потребляемого устройством тока, работающих без поддержки со стороны самого устройства. На разъём USB приходят 5 В — и всё, если производитель не поставил на этот порт предохранитель, вы можете нагружать его до тех пор, пока разъём не расплавится. Воткните в него резистор на 5 Ом — и вы будете получать от USB 1 А, при этом ОС будет с полной уверенностью считать, что нагрузка на порт равна нулю.

Здесь мы подходим ко второму вопросу: откуда ОС знает про нагрузку на порт? А ей об этом сообщает само устройство. Любое USB-устройство обязано иметь в себе пачку дескрипторов, значения которых при подключении устройства передаются на хост — и последний из них узнаёт, как устройство называется, что делает, на какой скорости работает и так далее. В частности, там есть конфигурационный дескриптор, в котором есть параметр bMaxPower — в нём указывается максимальное потребление устройства. Параметр однобайтовый, ступенька — 2 мА, т.е. максимум устройство может сообщить о потреблении 255*2 мА = 510 мА. Если ОС считает, что допустимая нагрузка на порт превышена (на нём же могут быть несколько устройств), оно выдаёт устройству отказ — и последнее обязано остаться в спячке. Проверить, осталось ли устройство в спячке или всё равно включилось и жрёт сколько может, невозможно.

Ещё раз:

  1. устройство само сообщает, сколько оно хочет потреблять;
  2. устройство даже теоретически не может сообщить о более чем 510 мА;
  3. проверить, правда ли устройство потребляет столько, сколько оно попросило, невозможно.
  4. Собственно, последним пунктом пользуются все внешние винчестеры с питанием от USB — у них стартовый ток 0,7—1,0 А. Разумеется, они формально просят 500 мА, а реально жрут сколько им надо.

В iPad чуть хитрее: наверняка ему для включения зарядки требуются не просто 5 В от USB, а какой-то специфический пинок, не получив который, iPad зарядку не включает, чтобы не сжечь порт. Этот пинок не имеет никакого отношения к спецификациям USB, это просто какой-то определённый пакет данных, передаваемый софтом на USB-устройство. Та же история с некоторыми мобильными телефонами: чтобы заряжаться от USB, им нужен либо свой софт, который отвесит им пинок, либо USB-кабель, в котором закорочены центральные контакты (такие кабели ставятся на зарядники 220V→USB, чтобы устройство умело отличать их от USB-порта компа).

Собственно, это всё, что делает «драйвер» Gigabyte: при виде iPad он отсылает ему команду «Заряжайся!». Всё. Больше никаких телодвижений не надо. Вы можете отослать ему эту команду на абсолютно любом компьютере — и он начнёт от него заряжаться. Конкретные модели материнок к данному «драйверу» привязаны только тем боком, что Gigabyte как бы гарантирует нам — от такой нагрузки USB в них не сгорит.

 
phones/default.txt · Последние изменения: 2010/04/16 00:57 От brjppru
 
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki