motofan logo
61 страниц V « < 57 58 59 60 61 >        
> 

Учимся писать эльфов вместе, Обсуждение процесса кодинга

Andy51
сообщение 29.10.2007, 20:13 Закрепленное сообщение!


0xFFFF
******

Группа: Разработчики
Сообщений: 832
Регистрация: 28.3.2006
Из: Нижний Новгород
Пользователь №: 76 255

Рейтинг: 1224



Вот и долгожданное обновление SDK до v0.2

Основные новшества с прошлой версии:
+ Добавлено множество функций в SDK
+ Добавлено два новых примера - на этот раз GUI

Что внутри:
Папка SDK - ну, и так ясно, заголовочные файлы. За описаниями функций заглядываем в эту папку.

helloworld_snd - первый пример эльфа. Несколько нестандартный HelloWorld, заменяет озвучку цифровой клавиатуры системными звуками. Предназначен в основном для изучения структуры приложения (Application), ну и как пример приложения, работающего в фоне.

helloworld_gui - классический HelloWorld эльф, на этот раз с использованием GUI. Выводит сообщение с помощью диалога Notice. Предназначен для изучения структуры простейшего GUI-приложения.

ListTest - пример использования диалога List. Значительно более сложный пример, предназначен для изучения возможностей и принципов управления диалогами.

make_*.bat - батники для сборки эльфов-примеров. Эльфы расчитаны на компиляцию с комплектом ADS. Из-за правил форума, я не могу включить его в SDK, однако оставляю ссылки
http://ifolder.ru/3937671
http://slil.ru/25060171
http://rapidshare.com/files/67580866/ads.7z.html

Lib.o - для функционирования эльфа под моим загрузчиком, необходимо подлинковать этот файл к проекту (в make.bat уже прописан).
Внимание! Этот файл не зависит от конкретной версии прошивки, под которую собирается эльф, но, тем не менее, зависит от версии библиотеки!
В этом SDK уже включен Lib.o для библиотеки v071218 (оч. старый - не забудьте обновить, если понадобятся новые функции)

Пара слов об т.н. Application.
В телефонах motorola есть система AFW, которая позволяет, не затрачивая лишних ресурсов процессора на обеспечение "полноценной" многозадачности, достаточно полноценно работать нескольким приложениям, ориентированным на диалог с пользователем. Как это работает: приложения представляют собой, фактически, набор обработчиков событий(ивентов, events) + структура данных приложения. Откликаясь на те или иные события, приложения поочерёдно обрабатывают списки накопившихся ивентов. Таким образом, мы фактически имеем невытесняющую многозадачность.
Есть теоретическая возможность писать и эльфы, выделенные в отдельный процесс(task), но эта часть всё ещё в разработке.

Книги по Си
  1. Руководство полного идиота по программированию (на языке Си) - Не смотря на такое название все азы разжёваны. Если вы вообще никогда не видели Си, начните с этой книги
  2. Герберт Шилдт, "Полный справочник по С (4-е издание)"
    Прикрепленный файл Spr_po_C.rar   ( 934.62 килобайт ) Кол-во скачиваний: 1072
  3. "Язык программирования C"
    Прикрепленный файл C_book.zip   ( 220.86 килобайт ) Кол-во скачиваний: 817
Исходники эльфов
  1. SRC by om2804
  2. SRC by G-XaD
SDK
  1. SDK by om2804
  2. SDK by G-XaD
Эльфостроение на motoWiki

Компилятор + исходники от om2804 для EP1 скачать

Сообщение отредактировал om2804 - 3.5.2011, 13:59
Прикрепленный файл SDKv02.rar   ( 24.88 килобайт ) Кол-во скачиваний: 2044
Прикрепленный файл C_book.zip   ( 220.86 килобайт ) Кол-во скачиваний: 817
Прикрепленный файл Spr_po_C.rar   ( 934.62 килобайт ) Кол-во скачиваний: 1072
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
zeDDer
сообщение 10.10.2010, 13:18


mCore hacker
*****

Группа: Разработчики
Сообщений: 474
Регистрация: 27.6.2007
Из: Беларусь, Слуцк
Пользователь №: 139 587
Модель телефона: V3x
Прошивка: У вас такой нет)
Финалист Конкурса 2010

Рейтинг: 464



Доброго времени суток. Есть вопрос по функции UINT32 DL_DbGetFeatureAvailability(UINT16 feature_id)
С её помощью можно получить значение определённого бита (0, 1) например из сима 0032.
Собственно вопрос: как по значениям сима (ид сима, запись, оффсет, бит) получить feature_id, и для каких симов применима данная ф-ция?


Немного поковырявшись я смог вывести закономерность для сима 0032_0001.

Пример:
Включение/выключение обновления ПО
seem_element_id=0x0032, seem_record=0x0001, seem_offset=0x80, bit=0x6.
feature_id = seem_offset * 0x8 + bit - seem_element_id = 0x80 * 0x8 + 0x6 - 0x0032 = 0x3D4


Смахивает на дикий подгон, но для сима 0032_0001 работает нормально smile.gif
Кто что может сказать по этому поводу?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Osta
сообщение 10.10.2010, 20:16


Freestyler
********

Группа: Легенды MotoFan.Ru
Сообщений: 10 329
Регистрация: 20.7.2004
Пользователь №: 8 235
Модель телефона: Moto
Прошивка: *#9999#


Настроение:
Все невыспавшиеся в следующей жизни будут котами



Рейтинг: 4362




думаю совпало , а вообще варьирует даже для разных прошивок, не говоря о моделях и платформах
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
zeDDer
сообщение 10.10.2010, 22:00


mCore hacker
*****

Группа: Разработчики
Сообщений: 474
Регистрация: 27.6.2007
Из: Беларусь, Слуцк
Пользователь №: 139 587
Модель телефона: V3x
Прошивка: У вас такой нет)
Финалист Конкурса 2010

Рейтинг: 464



Osta, сдаётся мне что тут похожая ситуация как и с UINT8 DL_DbFeatureGetCurrentState( UINT16 fstate_ID, UINT8 *state ).
Для неё есть в SDK BEGIN_4A__IN_DB. Т.е. fstate_id = BEGIN_4A__IN_DB + seem_004a_offset.
Только если DL_DbFeatureGetCurrentState получает байт из сима, то через DL_DbGetFeatureAvailability я могу получить бит.

Хочется найти закономерность. И в одной, и в другой ф-ции используется значение этого BEGIN_4A__IN_DB...
А ищу это для того что бы смотря в исходник прошивы, можно было определять каким битом в симах включается некоторая ф-ция, которая не описана на форуме через симы, или просто не подходит для моей платформы smile.gif

Сообщение отредактировал zeDDer - 10.10.2010, 22:02
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
fedorov.alex
сообщение 5.11.2010, 0:16


Интересующийся
**

Группа: Пользователи
Сообщений: 30
Регистрация: 10.6.2009
Пользователь №: 201 098
Модель телефона: E398/E1
Прошивка: DaR 2.x test 16

Рейтинг: 3



Доброй ночи, пытаюсь вот изучить азы программирования эльфов, хочу сделать маргалку для e398 (боковыми светодиодами) чтобы при отсутствии пропущенных вызовов к примеру был синий, а при их наличии например красный.
С обычным морганием по таймеру вроде разобрался, а вот с определением наличия пропущенных все никак не могу понять. Как сделать проверку есть они или нет?
Как понимаю должно быть что-то типа?
if(если пропущенных>=1)то... красный
if(если пропущенных<1)то.синий

Сообщение отредактировал fedorov.alex - 5.11.2010, 0:17
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
baat
сообщение 5.11.2010, 7:11


Самый Наглый
******

Группа: В отставке
Сообщений: 1 282
Регистрация: 18.5.2006
Из: Дом, милый дом...
Пользователь №: 83 674
Модель телефона: старая модель...
Прошивка: какая уж есть...
Победитель конкурса 2008


Настроение:
...



Рейтинг: 1535



fedorov.alex,
так не выйдет, скорее
if(есть пропущенные)то красный; else то синий;

зачем условие второе? "if(если пропущенных<1)" не совсем понятно, их что может, -7(минус семь) быть?
и уже была мигалка... зачем по сто раз то, что уже есть делать то?

и к слову, где то уже отвечали на вопрос о пропущеных, щас найду... в моей теме и было...

Цитата(Osta @ 19.2.2010, 15:11) *
Цитата(tim apple @ Сегодня, 11:24)
самый простой и прямой способ
*
будьте проще :
YES=0 (глобальная переменная)

*EV_CALL_ALERT (звонит кто-то) то YES=1
*EV_CALL_PLACE2 + 2 (сняли трубку) то YES=0

Если YES=1 и Рабочий стол=1 То (есть пропущенный) Овца бэкает
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Osta
сообщение 5.11.2010, 8:26


Freestyler
********

Группа: Легенды MotoFan.Ru
Сообщений: 10 329
Регистрация: 20.7.2004
Пользователь №: 8 235
Модель телефона: Moto
Прошивка: *#9999#


Настроение:
Все невыспавшиеся в следующей жизни будут котами



Рейтинг: 4362



Цитата(fedorov.alex @ Сегодня, 3:16)

я, а вот с определением наличия пропущенных все никак не могу понять. Как сделать проверку есть они или нет?
*


посмотри исходник CallPostStyle.elf (Послепропущенозвонильщик)
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
R.U.S.H.A.N.
сообщение 5.11.2010, 9:46


Интересующийся
**

Группа: Разработчики
Сообщений: 95
Регистрация: 13.4.2009
Из: home://russia/ufa/
Пользователь №: 197 674
Модель телефона: Е398, Milestone, XT912
Прошивка: DaR_v2.15

Рейтинг: 231



Вот давно хотел спросить, совместимы ли эльфы сименса и моторолы на уровне команд процессора? Т.е. если переписать их загрузщик и хотя бы минимальный API прошивки Siemens, то можно будет ли запустить ихний простейший эльф у нас на мотороле без перекомпиляции?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
fedorov.alex
сообщение 5.11.2010, 9:48


Интересующийся
**

Группа: Пользователи
Сообщений: 30
Регистрация: 10.6.2009
Пользователь №: 201 098
Модель телефона: E398/E1
Прошивка: DaR 2.x test 16

Рейтинг: 3



Спасибо всем кто ответил, попробую smile.gif
Цитата(baat @ 5.11.2010, 10:11) *

и уже была мигалка... зачем по сто раз то, что уже есть делать то?

Согласен, были, но все же хочется самому немного в этом разобраться, да и не встречал такой мигалки которая на пропущенные реагировала бы
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Andy51
сообщение 5.11.2010, 10:55


0xFFFF
******

Группа: Разработчики
Сообщений: 832
Регистрация: 28.3.2006
Из: Нижний Новгород
Пользователь №: 76 255

Рейтинг: 1224



Цитата(R.U.S.H.A.N. @ Сегодня, 12:46)

Вот давно хотел спросить, совместимы ли эльфы сименса и моторолы на уровне команд процессора? Т.е. если переписать их загрузщик и хотя бы минимальный API прошивки Siemens, то можно будет ли запустить ихний простейший эльф у нас на мотороле без перекомпиляции?
*

Эльфы с сименса не совместимы ни на уровне команд процессора, ни на уровне API.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Andy51
сообщение 6.11.2010, 20:16


0xFFFF
******

Группа: Разработчики
Сообщений: 832
Регистрация: 28.3.2006
Из: Нижний Новгород
Пользователь №: 76 255

Рейтинг: 1224



Кто-нибудь сталкивался с проблемой свёртыванмя эльфа при появлении заставки, приходе смс, будильнике, входящем звонке? Есть у кого-нибудь рабочее решение, как это обнаруживать?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Учимся писать эльфов вместе, Обсуждение процесса кодинга · Эльфы, их разработка и портирование · Forum
 

61 страниц V « < 57 58 59 60 61 >
Ответ в темуСоздание новой темы
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 27.4.2024, 21:39

Форум живёт: