motofan logo
16 страниц V « < 5 6 7 8 9 > »         
> 

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

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 килобайт ) Кол-во скачиваний: 1154
  3. "Язык программирования C"
    Прикрепленный файл C_book.zip   ( 220.86 килобайт ) Кол-во скачиваний: 898
Исходники эльфов
  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 килобайт ) Кол-во скачиваний: 2172
Прикрепленный файл C_book.zip   ( 220.86 килобайт ) Кол-во скачиваний: 898
Прикрепленный файл Spr_po_C.rar   ( 934.62 килобайт ) Кол-во скачиваний: 1154
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
DmT
сообщение 31.1.2009, 7:24


Мото-Портной
******

Группа: Разработчики
Сообщений: 1 175
Регистрация: 31.3.2007
Пользователь №: 129 181
Модель телефона: LG GW620, L7e и др.
Победитель конкурса 2008

Рейтинг: 680



Цитата(lavmen @ Сегодня, 10:51)

DL_FsFFileExist
*


прямой вызов.
Цитата(lavmen @ Сегодня, 10:51)

DL_FsFileExist
*


Вызов с проверкой на DRM.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
om2804
сообщение 31.1.2009, 10:38


МотоКодер
******

Группа: Разработчики
Сообщений: 786
Регистрация: 14.8.2006
Из: Архангельск
Пользователь №: 95 055
Модель телефона: E398
Прошивка: DaR
Победитель конкурса 2008

Рейтинг: 1650



lavmen, список действий в диалоге - это стандартный ресурс, берётся из DRM. Вижу только один выход - патчить. Или DRM_SetResource юзать

Сообщение отредактировал om2804 - 31.1.2009, 10:39
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
fkcoder
сообщение 31.1.2009, 11:01


Eve
******

Группа: Разработчики
Сообщений: 1 014
Регистрация: 31.1.2006
Из: Новокузнецк
Пользователь №: 68 287
Модель телефона: L9 ATRIX 4G iPhone SE E1

Рейтинг: 650



Ну по идее мне нужно его уничтожить. DRM_ClearResource требует RESOURCE_ID, а где мне его взять? Из диалога всмысле
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Мачо
сообщение 31.1.2009, 13:40


Ветеран
*****

Группа: Легенды MotoFan.Ru
Сообщений: 456
Регистрация: 26.7.2004
Из: Киров
Пользователь №: 8 569
Модель телефона: Е398 (умер), E6
Прошивка: Dream A Reality 2.0
Финалист Конкурса 2010

Рейтинг: 1410



Ихмо проще создать лист. Ну а в его экшены добавить что душе угодно.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
R.U.S.H.A.N.
сообщение 20.4.2009, 10:00


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

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

Рейтинг: 231



Возможно ли в ELFPACK 1.0 изпользование внешних библиотек на подобе dll в Windows, если возможно то как?

[om2804]
Ждём EP2


Сообщение отредактировал om2804 - 20.4.2009, 10:28
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
fkcoder
сообщение 21.4.2009, 6:56


Eve
******

Группа: Разработчики
Сообщений: 1 014
Регистрация: 31.1.2006
Из: Новокузнецк
Пользователь №: 68 287
Модель телефона: L9 ATRIX 4G iPhone SE E1

Рейтинг: 650



Нужна инфа о создании подменю в вариантах. Пример: в новом сообщение -> вставить
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
R.U.S.H.A.N.
сообщение 21.4.2009, 9:03


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

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

Рейтинг: 231



Цитата(lavmen @ 21.4.2009, 12:56) *

Нужна инфа о создании подменю в вариантах. Пример: в новом сообщение -> вставить

А можно по конкретней описать проблему?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
fkcoder
сообщение 21.4.2009, 10:25


Eve
******

Группа: Разработчики
Сообщений: 1 014
Регистрация: 31.1.2006
Из: Новокузнецк
Пользователь №: 68 287
Модель телефона: L9 ATRIX 4G iPhone SE E1

Рейтинг: 650



R.U.S.H.A.N., по конкретнее: нет никакой проблемы, на старых телефонах отсутствует такая фича, онли L9, L7e, K1, Z3. Вот я и говорю может кто умеет уже их делать
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
K-E-N-N-Y
сообщение 17.5.2009, 15:07


MotoCrazy^^
*****

Группа: Пользователи
Сообщений: 608
Регистрация: 9.4.2008
Из: Саратов
Пользователь №: 169 076
Модель телефона: Optimus P500
Прошивка: Android 2.2.1
Победитель конкурса 2008

Рейтинг: 533



Может кто-нибудь досконально обьяснить мне ListTest.elf?Его работу....если можно в асю....
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
tim apple
сообщение 17.5.2009, 15:17


Мастер
****

Группа: Разработчики
Сообщений: 260
Регистрация: 13.7.2007
Из: РФ, Башкирия, Стерлитамак
Пользователь №: 141 375
Модель телефона: ---
Прошивка: ---

Рейтинг: 435



K-E-N-N-Y,
мм.. это врядли. лучше спрашивай непонятные места
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
baat
сообщение 17.5.2009, 15:51


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

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


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



Рейтинг: 1535



K-E-N-N-Y, целеком, это очень долго...
регистрация, старт, выход, основная часть, гуи, события, диалог, ресурсы...
изучай по частям проще будет...
там коментов не мало в принципе... уже должна часть понятна быть...
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
K-E-N-N-Y
сообщение 17.5.2009, 16:02


MotoCrazy^^
*****

Группа: Пользователи
Сообщений: 608
Регистрация: 9.4.2008
Из: Саратов
Пользователь №: 169 076
Модель телефона: Optimus P500
Прошивка: Android 2.2.1
Победитель конкурса 2008

Рейтинг: 533



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

Обьясните мне октуда listtest.elf берет строки....не так :"из дрм" или "из проши",это и так понятно,а именно откуда и как их изменитьт

Сообщение отредактировал K-E-N-N-Y - 17.5.2009, 16:34
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
baat
сообщение 17.5.2009, 17:02


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

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


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



Рейтинг: 1535



K-E-N-N-Y, вот дрм, DRM_CreateResource допустим смотрим resources.h...
Spoiler:
в коде:
Код
DRM_CreateResource( &Resources[RES_ACTION1], RES_TYPE_ACTION, (void*)&action, sizeof(RES_ACTION_LIST_ITEM_T));

смотрим SDK:
Код
// Создать ресурс
UINT32 DRM_CreateResource( RESOURCE_ID      *res_id,
                           UINT32           type,       //RES_TYPE_*
                           void             *data,
                           UINT32           size );

каждый пункт в отдельности ищем:
Resources, RES_TYPE_ACTION, action, RES_ACTION_LIST_ITEM_T
в коде:
Код
/* Список всех ресурсов приложения */
RESOURCE_ID Resources[RES_MAX];

в SDK:
Код
/* ID ресурса формируется типом ресурса в качестве старшего байта и номером ресурса текущего типа
    Например, 0x01000496 = "Системная ошибка"
    Идентификаторы для строк и картинок берутся, соответственно, из ленгпака и DRM */

#define RES_TYPE_STRING         0x01
#define [b]RES_TYPE_ACTION[/b]       0x06
Код

в коде:[code]/* В этой функции мы будем создавать все необходимые нам ресурсы */
UINT32 InitResources( )
{
    RES_ACTION_LIST_ITEM_T        action;

в SDK:
Код

/* Структура для описания ресурса для Action-а */
typedef struct
{
  RESOURCE_ID     softkey_label;    // Надпись на софт-кнопке
    RESOURCE_ID     list_label;     // Надпись в списке действий
    INT8        softkey_priority; // Приоритет расположения на софткнопках, отрицательый -
                        // на левый софт, положительный - на правый
    INT8        list_priority;    // Приоритет расположения в списке действий, два пункта
                        // с наивысшим приоритетом располагаются на софткнопках, и дальше смотрится softkey_priority
    BOOL              isExit;       // ?? Явлется ли командой выхода из приложения
    BOOL              sendDlgDone;    // Посылать ли дополнительно ивент EV_DIALOG_DONE
} RES_ACTION_LIST_ITEM_T;
[close]

в блакноте поиск Ctrl + F...




Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Alesha_Pl
сообщение 22.5.2009, 4:15


Гуру
******

Группа: Почётные мотофаны
Сообщений: 986
Регистрация: 19.5.2005
Из: Россия, г.Петрозаводск
Пользователь №: 42 716
Модель телефона: e398
Прошивка: 49R+EP1+EP2

Рейтинг: 681



Ну вот, опять я пришел просить меня научить smile.gif
В общем я опять про вывод графики в канве.
Я научился вроде уже выводить на канву картинку изфайловой системы (как например в скинах тюнса)
С помощью такой функции:
Код

UINT32 DrawPathImage( IMAGE_PATH_T PathValue, INT16 x, INT16 y, INT16 a_h, INT16 a_v)
{
    PICTURE_TYPE_UNION_T picture_data;
    GRAPHIC_POINT_T anchor_point;  
    
    anchor_point.x = x;
    anchor_point.y = y;

    picture_data.PathValue = PathValue;

UIS_CanvasDrawImage(IMAGE_PATH_TYPE,            
                        picture_data,
                        anchor_point,
                        (UINT16)(a_v|a_h),
                        Xor,
                        dialog);

    return RESULT_OK;
}


И обращаюсь к ней таким вот например образом:
Код

DrawPathImage(L"file://b/Elf/logo.gif", 56,5, ANCHOR_LEFT, ANCHOR_TOP );


Картинка выводится. Правда некоторые картинки вместо прозрачных участков рисуются белым. Но это дело десятое. А проблема у меня в следующем.
Я хочу рисовать картинку не из файловой системы, а запихнуть ее непосредственно в эльф.

Вопрос: как быстро засунуть картинку в эльф и как потом ее рисовать (т.е. что написать вместо L"file://b/Elf/logo.gif)???

Наверно надо как-то превратить картинку в массив. Но вот как это сделать (не вручную же наверно) и как потом им воспользоваться, чтобы массив отобразился ввиде картинки...

В общем очень прошу научить.

Сообщение отредактировал Alesha_Pl - 22.5.2009, 4:16
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
om2804
сообщение 22.5.2009, 6:54


МотоКодер
******

Группа: Разработчики
Сообщений: 786
Регистрация: 14.8.2006
Из: Архангельск
Пользователь №: 95 055
Модель телефона: E398
Прошивка: DaR
Победитель конкурса 2008

Рейтинг: 1650



Код

// картинка
unsigned char PIC[3] = {
    0xFF, 0xD8, 0xFF
};



PICTURE_TYPE_UNION_T picture_data;
    GRAPHIC_POINT_T anchor_point;

    CANVAS_IMAGE_HANDLE_T image_handle;
    GRAPHIC_POINT_T image_size;
    GRAPHIC_REGION_T image_region;


    picture_data.PointerValue.resourcePicturePointerValue = PIC;
    picture_data.PointerValue.imageSize = PIC_SIZE;

    anchor_point.x = x;
    anchor_point.y = y;

    image_handle = UIS_CanvasOpenImageAndGetSize(STORED_IN_MEMORY_TYPE,
                                  picture_data,
                                  &image_size);    

    // прозрачность
    UIS_CanvasSetImageAttribute(image_handle,
                                IA_OBEY_TRANSPARENCY,
                                NULL);

    UIS_CanvasRenderImageToBuffer(image_handle,
                                  image_size,
                                  anchor_point,
                                  anchor,
                                  &image_region,
                                  Copy,
                                  dialog);


    UIS_CanvasCloseImage(image_handle);



Чтобы картинку в массив перегнать, юзай WinHex (Правка -> Copy Block -> Как исходники на Си)
Для примера можно ещё ElfRunner поглядеть или Motocmd

Сообщение отредактировал om2804 - 22.5.2009, 6:55
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
tim apple
сообщение 22.5.2009, 7:59


Мастер
****

Группа: Разработчики
Сообщений: 260
Регистрация: 13.7.2007
Из: РФ, Башкирия, Стерлитамак
Пользователь №: 141 375
Модель телефона: ---
Прошивка: ---

Рейтинг: 435



Цитата(om2804 @ Сегодня, 12:54)

Чтобы картинку в массив перегнать, юзай WinHex (Правка -> Copy Block -> Как исходники на Си)
*


можно проще, юзайте тулзу вроде этой:
Прикрепленный файл raw2c.zip   ( 2.67 килобайт ) Кол-во скачиваний: 122

raw2c image.gif
получите image.c и image.h
Прикрепленный файл raw2c.zip   ( 2.67 килобайт ) Кол-во скачиваний: 122
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Alesha_Pl
сообщение 22.5.2009, 8:46


Гуру
******

Группа: Почётные мотофаны
Сообщений: 986
Регистрация: 19.5.2005
Из: Россия, г.Петрозаводск
Пользователь №: 42 716
Модель телефона: e398
Прошивка: 49R+EP1+EP2

Рейтинг: 681



Цитата(om2804 @ Сегодня, 10:54)

Чтобы картинку в массив перегнать, юзай WinHex (Правка -> Copy Block -> Как исходники на Си)
*



Это осилил smile.gif
Получил что-то типа
Код
unsigned char PIC[3] = {
    0xFF, 0xD8, 0xFF
};


а со всем остальным что делать
наверно объединить в какую-то функцию по аналогии с эльфранером, типа
UINT32 DrawImageId( UINT32 n, INT16 x, INT16 y, UINT16 anchor)
только вместо UINT32 n что другое надо
как эту PIC[3] в нее передать?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
om2804
сообщение 22.5.2009, 8:51


МотоКодер
******

Группа: Разработчики
Сообщений: 786
Регистрация: 14.8.2006
Из: Архангельск
Пользователь №: 95 055
Модель телефона: E398
Прошивка: DaR
Победитель конкурса 2008

Рейтинг: 1650



Я код привел как передать. просто PIC wink.gif

Сообщение отредактировал om2804 - 22.5.2009, 8:53
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Alesha_Pl
сообщение 22.5.2009, 9:02


Гуру
******

Группа: Почётные мотофаны
Сообщений: 986
Регистрация: 19.5.2005
Из: Россия, г.Петрозаводск
Пользователь №: 42 716
Модель телефона: e398
Прошивка: 49R+EP1+EP2

Рейтинг: 681



om2804, а если у меня их несколько, да для каждой надо задать координаты и рыравнивание. Не соображу никак что-то. Как собрать остальной код в отдельную функцию и вызывать по аналогии с тем как я делал когда рисовал из файловой системы
DrawPathImage(L"file://b/Elf/logo.gif", 56,5, ANCHOR_LEFT, ANCHOR_TOP ); ?

Сообщение отредактировал Alesha_Pl - 22.5.2009, 9:06
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
om2804
сообщение 22.5.2009, 9:06


МотоКодер
******

Группа: Разработчики
Сообщений: 786
Регистрация: 14.8.2006
Из: Архангельск
Пользователь №: 95 055
Модель телефона: E398
Прошивка: DaR
Победитель конкурса 2008

Рейтинг: 1650



Код

// PIC - указатель на картинку. Т.к. массив - это тоже указатель, то в параметрах указываем просто имя массива
UINT32 DrawImageId( UINT8 *PIC, INT16 x, INT16 y, UINT16 anchor)
{
   // код приведённый выше
}
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Alesha_Pl
сообщение 22.5.2009, 9:11


Гуру
******

Группа: Почётные мотофаны
Сообщений: 986
Регистрация: 19.5.2005
Из: Россия, г.Петрозаводск
Пользователь №: 42 716
Модель телефона: e398
Прошивка: 49R+EP1+EP2

Рейтинг: 681



Не рисует sad.gif





tim apple, попробовал как ты сказал. Но перед unsigned char PIC[3] программой вставилась еще const. И на нее ругается компилятор. Убрал const. Скомпилировал нормально. Но результат тот же - все работает, но без картинки.



Сообщение отредактировал Alesha_Pl - 22.5.2009, 11:57
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
om2804
сообщение 22.5.2009, 13:28


МотоКодер
******

Группа: Разработчики
Сообщений: 786
Регистрация: 14.8.2006
Из: Архангельск
Пользователь №: 95 055
Модель телефона: E398
Прошивка: DaR
Победитель конкурса 2008

Рейтинг: 1650



Вместо PIC_SIZE должн быть размер массива, в котором у тебя картинка. Откуда знать где закончится массив.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
om2804
сообщение 26.5.2009, 9:56


МотоКодер
******

Группа: Разработчики
Сообщений: 786
Регистрация: 14.8.2006
Из: Архангельск
Пользователь №: 95 055
Модель телефона: E398
Прошивка: DaR
Победитель конкурса 2008

Рейтинг: 1650



Код


//создать Canvas
UIS_DIALOG_T UIS_CreateColorCanvas( SU_PORT_T  *port,
                                    DRAWING_BUFFER_T * drawing_buffer,
                                    BOOL status_line_area ); // true - не показывать статус-строку, false - показывать
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
R.U.S.H.A.N.
сообщение 26.5.2009, 10:25


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

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

Рейтинг: 231



Что означают следующие функции(они вставляются в код автоматически):
Error: L6218E: Undefined symbol _ll_sublu (referred from Un7zip.o).
Error: L6218E: Undefined symbol _ll_add (referred from Un7zip.o).
Error: L6218E: Undefined symbol _ll_shift_l (referred from Un7zip.o).
Error: L6218E: Undefined symbol _ll_addlu (referred from Un7zip.o).
Finished: 0 information, 0 warning and 4 error messages.
и где их можно найти?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
fkcoder
сообщение 26.5.2009, 11:21


Eve
******

Группа: Разработчики
Сообщений: 1 014
Регистрация: 31.1.2006
Из: Новокузнецк
Пользователь №: 68 287
Модель телефона: L9 ATRIX 4G iPhone SE E1

Рейтинг: 650



R.U.S.H.A.N.,
Открой эльф gsm_flash_dev.elf в иде и ищи по функциям. а потом по паттерне в своей прошивке
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
R.U.S.H.A.N.
сообщение 26.5.2009, 12:03


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

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

Рейтинг: 231



gsm_flash_dev.elf а откуда его можно взять?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
fkcoder
сообщение 26.5.2009, 13:30


Eve
******

Группа: Разработчики
Сообщений: 1 014
Регистрация: 31.1.2006
Из: Новокузнецк
Пользователь №: 68 287
Модель телефона: L9 ATRIX 4G iPhone SE E1

Рейтинг: 650



R.U.S.H.A.N.,
Some useful stuff for patchers!
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
om2804
сообщение 26.5.2009, 20:40


МотоКодер
******

Группа: Разработчики
Сообщений: 786
Регистрация: 14.8.2006
Из: Архангельск
Пользователь №: 95 055
Модель телефона: E398
Прошивка: DaR
Победитель конкурса 2008

Рейтинг: 1650



А можно подлинковать готовую либу armlib с моего сайта http://om2804.webaltera.ru/downloads.php?u...lfs/Libs/armlib
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
cdrom123
сообщение 27.5.2009, 5:36


Новичок
*

Группа: Начинающие
Сообщений: 2
Регистрация: 27.5.2009
Пользователь №: 200 232
Модель телефона: L7e
Прошивка: l7e

Рейтинг: 0



Просьба сообщить l7e сотового телефона в EFL программы в использовании различных системных функций! Большое Вам спасибо. Я новичок, пожалуйста, помогите!
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
cdrom123
сообщение 27.5.2009, 6:01


Новичок
*

Группа: Начинающие
Сообщений: 2
Регистрация: 27.5.2009
Пользователь №: 200 232
Модель телефона: L7e
Прошивка: l7e

Рейтинг: 0



Здравствуйте! Задать вопрос:
Я ads1.2 создание проектов, которые планируется проверить компилятор informer1.0. Источник использование вашего документа informer.c и informer.h, зачем делать ошибки на этот раз? Как решить. Предоставляться только использовать GUI для объявлений , с тем чтобы составить его?
Ошибка в следующем:

Error C3030E:'=':implicit cast of pointer to "int
Error C2432E:

Error C3030E Точка код ошибки { EV_IDLE_GAIN_FOCUS, IdleStart },

Пожалуйста, ответьте


Добавлено позже (27.5.2009, 14:04):
К сожалению, я знаю только некоторые российские, пожалуйста понимания!
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Alesha_Pl
сообщение 27.5.2009, 8:17


Гуру
******

Группа: Почётные мотофаны
Сообщений: 986
Регистрация: 19.5.2005
Из: Россия, г.Петрозаводск
Пользователь №: 42 716
Модель телефона: e398
Прошивка: 49R+EP1+EP2

Рейтинг: 681



что бы вывести на экран картинку (на рабочий стол).
Картинку можно сделать аналогично этому
Код
// картинка
unsigned char PIC[3] = {
    0xFF, 0xD8, 0xFF
};


Так?

А что бы нарисовать

Код
UINT32 Draw(char *PIC, UINT16 x, UINT16 y)
{

    GRAPHIC_REGION_T    region;
  

        region.ulc.x = x;
        region.ulc.y = y;
  
        region.lrc.x = region.ulc.x + ширина картинки;
        region.lrc.y = region.ulc.y + высота картинки;
              // Создать ресурс
                DRM_CreateResource( &pic, RES_TYPE_ANIMATION, (void*)pic , 3);
                  
        // рисуем картинку
        utility_draw_image( PIC, region, NULL, NULL );

   return RESULT_OK;
}



Компилятор ругается на первый параметр в utility_draw_image, те на PIC. Почему?
Или я вообще на правильно делаю?

Сообщение отредактировал Alesha_Pl - 27.5.2009, 8:18
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
tim apple
сообщение 27.5.2009, 10:36


Мастер
****

Группа: Разработчики
Сообщений: 260
Регистрация: 13.7.2007
Из: РФ, Башкирия, Стерлитамак
Пользователь №: 141 375
Модель телефона: ---
Прошивка: ---

Рейтинг: 435



Alesha_Pl, вообще-то тогда так:
Код

UINT32 Draw( char * pic_data, int pic_size, UINT16 x, UINT16 y )
{
    GRAPHIC_REGION_T    region;
    RESOURCE_ID        pic_res;
    
    region.ulc.x = x;
    region.ulc.y = y;
    region.lrc.x = region.ulc.x + ширина картинки;
    region.lrc.y = region.ulc.y + высота картинки;
    
    DRM_CreateResource( &pic_res, RES_TYPE_ANIMATION, (void*)pic_data , pic_size );
    utility_draw_image( pic_res, region, NULL, NULL );
    DRM_ClearResource( pic_res );
}

Draw( PIC, sizeof(PIC), 10, 10 );


Сообщение отредактировал tim apple - 27.5.2009, 15:22
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Alesha_Pl
сообщение 27.5.2009, 11:42


Гуру
******

Группа: Почётные мотофаны
Сообщений: 986
Регистрация: 19.5.2005
Из: Россия, г.Петрозаводск
Пользователь №: 42 716
Модель телефона: e398
Прошивка: 49R+EP1+EP2

Рейтинг: 681



tim apple, PIC уже описана unsigned char PIC[3] = , поэтому компилятор ругается на повтор.
И куда деть utility_draw_image в твоем коде. Я попробовал перед DRM_ClearResource, в общем на PIC ругается компилятор.


И еще вопрос назрел. В моей теме я выложил новый мод секундомера. Станный глюк - если в момент окончания обратного отсчета обновляется какой-то из элементов стат строки, то звук окнчания обратного отсчета повторяется несколько раз. Как думаете почему из-за стат строки такой глюк может быть? И вот на сам отсчет никак стат строка не влияет, а на выполнение действий по его завершению такое влияние оказывается. А всего-то, в одном месте кода, сменил труе на фалсе, что бы заработала стат строка.

Сообщение отредактировал Alesha_Pl - 27.5.2009, 11:58
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
fkcoder
сообщение 27.5.2009, 11:56


Eve
******

Группа: Разработчики
Сообщений: 1 014
Регистрация: 31.1.2006
Из: Новокузнецк
Пользователь №: 68 287
Модель телефона: L9 ATRIX 4G iPhone SE E1

Рейтинг: 650



Alesha_Pl,
Код
UINT32 Draw(UINT16 x, UINT16 y)
{

    GRAPHIC_REGION_T    region;

        region.ulc.x = x;
        region.ulc.y = y;
  
        region.lrc.x = region.ulc.x + ширина картинки;
        region.lrc.y = region.ulc.y + высота картинки;

        DRM_CreateResource( &res, RES_TYPE_ANIMATION, (void*)pic , sizeof(pic) ); // pic - твоя картинка
                  
        utility_draw_image( res, region, NULL, NULL );

   return RESULT_OK;
}


вот так попробуй.
только мне одно не понятно - для чего рисовать картинку из трех байт? laugh.gif
и не забывай чистить ресурсы при выходе из эльфа

ЗЫ. А лучше объяви res в оперативке чтобы потом было проще чистить
Код
RESOURCE_ID       res;


и картинку константой сделай

Код
const unsigned char pic[] = { 0xFF, 0xD8, 0xFF }


Сообщение отредактировал lavmen - 27.5.2009, 12:03
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Alesha_Pl
сообщение 27.5.2009, 11:59


Гуру
******

Группа: Почётные мотофаны
Сообщений: 986
Регистрация: 19.5.2005
Из: Россия, г.Петрозаводск
Пользователь №: 42 716
Модель телефона: e398
Прошивка: 49R+EP1+EP2

Рейтинг: 681



lavmen, это для краткости 3 байта. smile.gif


Скомпилировал нормально, жаль проверить сейчас не могу. Дома вечером проверю, получилось или нет.

Сообщение отредактировал Alesha_Pl - 27.5.2009, 12:11
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
tim apple
сообщение 27.5.2009, 15:24


Мастер
****

Группа: Разработчики
Сообщений: 260
Регистрация: 13.7.2007
Из: РФ, Башкирия, Стерлитамак
Пользователь №: 141 375
Модель телефона: ---
Прошивка: ---

Рейтинг: 435



Alesha_Pl,
я исправил пост #290 - надеюсь так понятнее.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
fkcoder
сообщение 27.5.2009, 15:38


Eve
******

Группа: Разработчики
Сообщений: 1 014
Регистрация: 31.1.2006
Из: Новокузнецк
Пользователь №: 68 287
Модель телефона: L9 ATRIX 4G iPhone SE E1

Рейтинг: 650



tim apple, если сразу чистить ресурс то не нарисуется. Не успевает нарисоватся она.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
tim apple
сообщение 27.5.2009, 17:50


Мастер
****

Группа: Разработчики
Сообщений: 260
Регистрация: 13.7.2007
Из: РФ, Башкирия, Стерлитамак
Пользователь №: 141 375
Модель телефона: ---
Прошивка: ---

Рейтинг: 435



lavmen,
ой я балбес, в своём же ДРМЧ держу все картинки в памяти изза этого.
объясняю, при создании ресурса картинки (и еще некоторых) в ДРМ сохраняются не сами переданные данные а только указатель на них. учитывайте это.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Alesha_Pl
сообщение 28.5.2009, 5:25


Гуру
******

Группа: Почётные мотофаны
Сообщений: 986
Регистрация: 19.5.2005
Из: Россия, г.Петрозаводск
Пользователь №: 42 716
Модель телефона: e398
Прошивка: 49R+EP1+EP2

Рейтинг: 681



lavmen, как ты написал, эльф скомпилился, но нифига не нарисовал.


tim apple, то что ты написал, при компиляции ругается на вызов написанной тобой функции <argument 1 to 'Draw'> ... cast of pointer to non equal pointer на PIC в общем


Кстати еще вопрос появился. Нужно определить цвет элемента экрана. Есть функция
Код

// возвращает цвет для линий, прямоугольников, текста.....
COLOR_T UIS_CanvasGetForegroundColor(void);


Для пикселя с заданными координатами нельзя значит? Тогда допустим хочу определить цвет прямойгольника высотой и шириной 1 пиксель (т.е. пикселя). Дак вот как тогда этой функции сказать что мне нужен цвет такого-то элемента? И как получить от этой функции цвет (просто вызвать ее (с какими параметрами?), в каком виде она вернет цвет?)?

Сообщение отредактировал Alesha_Pl - 28.5.2009, 5:36
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
tim apple
сообщение 28.5.2009, 6:07


Мастер
****

Группа: Разработчики
Сообщений: 260
Регистрация: 13.7.2007
Из: РФ, Башкирия, Стерлитамак
Пользователь №: 141 375
Модель телефона: ---
Прошивка: ---

Рейтинг: 435



Цитата(Alesha_Pl @ Сегодня, 11:25)

ругается на вызов
*


подправь объявление ф-ции
Код
UINT32 Draw( const char * pic_data, int pic_size, UINT16 x, UINT16 y )

привыкай приводить типы - не всегда они совпадают.
Код
Draw( (char*)PIC, sizeof(PIC), 10, 10 );


Цитата(Alesha_Pl @ Сегодня, 11:25)

Нужно определить цвет элемента экрана
*


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

16 страниц V « < 5 6 7 8 9 > » 
Ответ в темуСоздание новой темы
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 20.7.2025, 0:37

Форум живёт: