Открыть главное меню

Изменения

Application

384 байта добавлено, 16:51, 21 февраля 2010
Нет описания правки
== Старт ==
Функция старта приложения имеет вид:
'''<pre>UINT32 AppStart( EVENT_STACK_T * ev_st, REG_ID_T reg_id, void * reg_hdl );</pre>
Параметры:
* ev_st - указатель на [[Event_Stack|стэк событий]].
* reg_id - идентификатор регистрации приложения. Когда приложение регистрируется, оно получает уникальный идентификатор регистрации, по которому его можно найти. По reg_id можно определить, что приложение с таким идентификатором уже запущено (см. [[AFW_InquireRoutingStackByRegId]]).
* reg_hdr - структура с данными, которые получены при регистрации приложениями.
В начале можно проверить - вдруг это приложение уже папущенозапущено:
<pre>
if( AFW_InquireRoutingStackByRegId( reg_id ) == RESULT_OK ) {
}</pre>
=== Инициализация ===
На этой стадии нужно выделить память под структуру и провести инициализацию приложения. Все это делает функция [[APP_InitAppData]].  <pre>APPLICATION_T* APP_InitAppData( void *main_event_handler,UINT32 sizeof_app,REG_ID_T reg_id,UINT32 history_size,UINT16 max_state_levels,UINT32 token_priority,UINT8 centricity,UINT8 routing_stack,UINT8 stack_priority );</pre> Параметры:
* функция обработчика ивентов приложения. Лучше воспользоваться уже готовыми функциями из прошивки - [[APP_HandleEvent]] для приложений использующих [[UIS|графический интерфейс]] или [[APP_HandleEventPrepost]] для фоновых.
* размер структуры приложения.
* приоритет. =1.
:Дальше идут несколько уровней приоритета приложения. Очевидно, фоновое приложение имеет высший приоритет и раньше поймает событие в обработчике.
* =AFW_APP_CENTRICITY_PRIMARY AFW_APP_CENTRICITY_NONE для фоновых, =AFW_APP_CENTRICITY_SECONDARY для приложений с [[UIS]].
* =AFW_PREPROCESSING для фоновых, =AFW_FOCUS для приложений с UIS.
* приоритет в стэке приложений. =AFW_POSITION_TOP.
== Выход ==
Функция выхода(закрытия) из приложения имеет вид:
'''<pre>UINT32 AppExit( EVENT_STACK_T * ev_st, APPLICATION_T * app );</pre>
В этой функции должны быть удалены диалоги, освобождена память и прочие ресурсы, выделенные динамически в процессе работы приложения. Вызвана стандартная функция выхода из приложения.
29
правок