nvoid
Expert
Регистрация: 29.11.07 Сообщений: 1375 Репутация: 380
#1911 [28.12.07, 11:46] Создание Эльфов
Предлагаю создать тему, посвященную созданию Эльфов. Думаю, удобнее будет собрать ссылки, посвященные Эльфам, в одной теме, а не оффтопить в разных...
Список функций находится в файле *.lib.vkp
Ссылки: ∙
Описание некоторых функций в Wiki ∙
Созадние ELF под Siemens ∙
Создание ELF под Siemens (здесь больше) ∙
Урезанная IAR ∙
Патч для IAR ∙
Учебник по СИ ∙
Основы программирования эльфов SVN :
∙
TortoiseSVN (программа для работы с SVN) ∙
svn://svn.boba.su/ARM -
Зеркало (http mirror) Siemens SVN
∙
svn://svn.boba.su/SE -
Зеркало (http mirror) Sony Ericsson SVN
для доступа на svn используйте guest/guest
Другие темы :
Вопросы о СИ (языке) Исходники Эльфов Компиляция ЭП Уроки :
Создание простого эльфа Фонарик от arban.
Создание GUI от arban:
часть 1 ,
часть 2 .
---------------------------------------------
elfcheck - простая прога, которая проверяет, используются ли в эльфах (включая эльфлоадер) функции, которых нет в либе.
simple tool which checks whether there are functions used in elfs (including elfloader) that are not included in library.
Q: How use elfcheck?
Q: Как использовать?
R: Look this page
here saveevents.elf - сохранение евентов (EVENT)
(c)
den_po ---------------------------------------------
Шаблоны эльфов для IAR Некоторые полезные для разработчиков шаблоны эльфов.
На данный момент имеются:
1) Пустой эльф
2) Пустой эльф со своей книгой
3) Эльф-рисовальщик на главном экране
4) Эльф для RegFile (по сути - пустой эльф, но с дополнительными входными параметрами)
5) Эльф с графическим интерфейсом - списком
6) Эльф-патч, который можно конвертировать в *.vkp при помощи elf2vkp
Установка: скопируйте содержимое архива в IAR\ARM\config\template\
Использование: Project->New project->Elf SDK->Нужный шаблон
(C)
UltraShot ---------------------------------------------
Раздел в Wiki, посвященный созданию эльфов
Прикрепленный к сообщению файл: elfcheck.rar (
32.56 kb; 1014 hits)
Скачать файл saveevents.elf (
1.13 kb; 439 hits)
Скачать файл iar_templates.zip (
114.52 kb; 720 hits)
Скачать файл
Motorola EM30
Спасибо сказали: pahon, Zormax, scorpion1616, Evil-Racer, Alex_E, avens, DuMOHsmol, TahaSpawn, vodoo999, Alex1992, ELECTRO-NIC, JohnNorth, HotRabbit, ENSAIER, Olegat0r, scorpion16_Richi, Oganyan-Arthur, Melodic_Death, toha257, farid, mugen, VovanLS, blacklizard, ZuZiK aka pavelsh, Metaler, Atreyu, Nook, Vov4ик, KnoonK, a6b6
Metaler
Elfmaker
Регистрация: 26.4.10 Сообщений: 201 Репутация: 2158 Откуда: Пенза
#1912 [08.11.11, 22:11] Re: Создание Эльфов
Подскажите в чём проблема:
хотел использовать в эльфе функцию
Код:
StringInput_GetCursorPosition(GUI*, u16 pos, char _zero);
но при её вызове ребут. Написал отдельно эльф для проверки, вот часть кода, непосредственно использующего ф-ю:
Код:
if(key==KEY_VOL_UP && mode==KBD_SHORT_PRESS && !(isKeylocked()) ) { u16 c_pos; wchar_t * src=new wchar_t[256]; StringInput_GetCursorPosition( DispObject_GetGUI(Display_GetFocusedDispObject(0)), &c_pos, 0 ); snwprintf(src, 255, L"%i", c_pos ); MessageBox(EMPTY_TEXTID,TextID_Create(src,ENC_UCS2,TEXTID_ANY_LEN),NOIMAGE,1,0,0); delete src; return(-1); }
так же при вызове ребут. При использовании, например
Код:
StringInput_GetStringAndLen( GUI*, wchar_t**, u16* );
всё нормально.
P.S.: Проверял на 3 телефонах.
К800 SW-R8BF003 W995 SW-R1GA026
Joker XT
VIP Developer
Регистрация: 5.8.06 Сообщений: 1292 Репутация: 7582
#1913 [08.11.11, 23:11] Re: Создание Эльфов
из VEFa
Код:
void EditFile_SetCursor(BOOK *MsgBxBook, GUI *gui_si) { wchar_t *InputText; u16 len; StringInput_GetStringAndLen(gui_si, &InputText, &len); u16 current_cur_pos; char zero; StringInput_GetCursorPosition(gui_si, ¤t_cur_pos, &zero); second_strinp = CreateStringInputVA(0, VAR_BOOK(MsgBxBook), VAR_STRINP_MODE(IT_INTEGER), VAR_OK_PROC(SetCursor_ActionOk), VAR_PREV_ACTION_PROC(SetCursor_ActionBack), VAR_STRINP_SET_INT_VAL(current_cur_pos), VAR_STRINP_MIN_INT_VAL(0), VAR_STRINP_MAX_INT_VAL(len), 0); }
SE C901 [R1GA028]
Спасибо сказали: dimony, Metaler
IDOL1234
Пользователь
Регистрация: 29.3.11 Сообщений: 113 Репутация: 1 Откуда: СПб
#1914 [25.11.11, 17:33] Re: Создание Эльфов
Как сэмулировать нажатие клавиши? Как сгенерировать эвент?
пшшшшшшшшшшшшшш!
Rc
Elfmaker
Регистрация: 22.6.08 Сообщений: 229 Репутация: 1208 Откуда: г. Арзамас
#1915 [25.11.11, 18:37] Re: Создание Эльфов
IDOL1234 пишет: Как сэмулировать нажатие клавиши? Как сгенерировать эвент?
Переназначение клавиши - return (NEEDED_KEY) в кейхуке, но только для достаточно новых ревизий ЭП
Нажатие для конкретного disp_obj
Код:
DISP_OBJ_ONKEY_METHOD onmykey=DispObject_GetOnKey (Display_GetFocusedDispObject(0)); onmykey (Display_GetFocusedDispObject(0),NEEDED_KEY,0,0,0); onmykey (Display_GetFocusedDispObject(0),NEEDED_KEY,0,0,3);
Не знаю, работает ли с современными ревизиями инклудов
Для ивентов кури функи UI_Event
K750i R1CA021 С901 R1GA028 Siemens ME75
Спасибо сказали: IDOL1234
IDOL1234
Пользователь
Регистрация: 29.3.11 Сообщений: 113 Репутация: 1 Откуда: СПб
#1916 [25.11.11, 19:18] Re: Создание Эльфов
Спасибо большое!
А то я уже пытался генерировать эвент нажатия клавиши и ловить это нажатие кейхуком
----
Скажите, можно ли как-нибудь отключить кейхук с ошибочным условием, из-за которого всегда возвращается (-1), без перезагрузки телефона?
----
Не.. То ли я туплю, то ли что-то не так.
Код:
if (x > 1000) { // MessageBox(EMPTY_TEXTID,STR("Hello Wordl!\n\nExample elf.."), NOIMAGE, 1, 500,NULL); //UI_Event( OPERATORKEY_PRESSED_EVENT ); DISP_OBJ_ONKEY_METHOD onmykey=DispObject_GetOnKey (Display_GetFocusedDispObject(0)); onmykey (Display_GetFocusedDispObject(0),KEY_LEFT,0,0,0); onmykey (Display_GetFocusedDispObject(0),KEY_LEFT,0,0,3); }
Месседж, если его раскомментировать, появляется, а кнопка не срабатывает. Я правильно заменил KEY_NEEDED на код клавиши?
[ Редактировано IDOL1234 в 25.11.11 19:30 ]
пшшшшшшшшшшшшшш!
Спасибо сказали: SERGK393 'Фу' сказали: gordan33-92
SERGK393
Elfmaker
Регистрация: 25.1.09 Сообщений: 330 Репутация: 1897 Откуда: Воронеж, Россия
#1917 [25.11.11, 19:57] Re: Создание Эльфов
IDOL1234 пишет: Месседж, если его раскомментировать, появляется, а кнопка не срабатывает.
IDOL1234 , Правильно, потому что он генерирует нажатие, когда мессадж в фокусе. Это тебе надо сначала клавиши сэмулировать, а потом вывести сообщение.
K310I - R4 HA 014 WMR 795407939817 WMZ 160582394547
IDOL1234
Пользователь
Регистрация: 29.3.11 Сообщений: 113 Репутация: 1 Откуда: СПб
#1918 [25.11.11, 20:15] Re: Создание Эльфов
Ненене, я его затем и закомментировал, чтобы такого не происходило. А до этого я его специально написал, чтобы проверить, срабатывает ли условие. ---- Можно ли получить текст из "чужого" поля ввода (Например, при редактировании sms) при помощи StringInput_GetStringAndLen? [ Редактировано IDOL1234 в 25.11.11 20:32 ]
пшшшшшшшшшшшшшш!
Metaler
Elfmaker
Регистрация: 26.4.10 Сообщений: 201 Репутация: 2158 Откуда: Пенза
#1919 [26.11.11, 00:34] Re: Создание Эльфов
IDOL1234 , можно
К800 SW-R8BF003 W995 SW-R1GA026
Спасибо сказали: IDOL1234, MrGraL
IDOL1234
Пользователь
Регистрация: 29.3.11 Сообщений: 113 Репутация: 1 Откуда: СПб
#1920 [26.11.11, 20:42] Re: Создание Эльфов
Так всё же, как сгенерировать нажатие на кнопку? Интересуют кнопки влево, вправо, вверх, вниз. Приведённый выше код почему-то не работает.
пшшшшшшшшшшшшшш!
Metaler
Elfmaker
Регистрация: 26.4.10 Сообщений: 201 Репутация: 2158 Откуда: Пенза
#1921 [27.11.11, 01:22] Re: Создание Эльфов
IDOL1234 , вот так примерно
К800 SW-R8BF003 W995 SW-R1GA026
Похожие темы
Вы не можете начинать темы. Вы не можете редактировать свои сообщения. Вы не можете создавать опросы. Вы не можете вкладывать файлы в сообщения. Вы не можете отвечать на сообщения. Вы не можете удалять свои сообщения. Вы не можете голосовать.