×
Namespaces

Variants
Actions

HAL - Аппаратный абстрактный слой

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata

Статья
Перевод:
Den123
Последнее редактирование: hamishwillee (30 May 2013)

Hardware Abstraction Layer - Аппаратный абстрактный слой.

При разработке приложений под S60 имеется ряд API с помощью которых можно получить информацию о возможностях системы, создавать разделяемы данные для того чтобы состояние текущего приложения было доступно другим, подписываться на оповещение об изменениях состояния системы.

Такого рода API реализованы с помощью двух ключевых компонентов:

  • Hardware Abstraction Layer (HAL, Аппаратный абстрактный слой)
  • The System Agent Components

С помощью HAL очень просто получить различные атрибуты устройства, например:

  • Производитель: производитель устройства, номера версий аппаратной и программной платформы.
  • Процессор: архитектуру процессора, тактовую частоту, ABI
  • Память: объем ОЗУ, объем свободной на данный момент ОЗУ, объем ПЗУ.
  • Экран: разрешение экрана, глубину цвета.
  • Различную информацию о клавиатуре

Объем API очень небольшой, всего три функции, все представлены в классе HAL:

static TInt Get(TAttribute anAttribute, TInt& aValue);
static TInt Set(TAttribute anAttribute, TInt& aValue);
static TInt GetAll(TInt& aNumEntries, SEntry*& aData);


Некоторые примеры получения атрибутов устройства

  1. Получение всех атрибутов устройства
    TInt numHalEntries;
     
    HAL::SEntry* halEntries;
     
    HAL::GetAll(numHalEntries, halEntries);
  2. Получение значения одного конкретного атрибута - в данном случае объема ОЗУ (байт).
    TInt ram;
     
    HAL::Get(HAL::EMemoryRAM, ram);


Некоторые примеры установки атрибутов устройства

TInt err = HAL::Set(HAL::ECaseSwitchDisplayOn, 1);

Если атрибут не поддерживает модификацию, в качестве результата выполнения будет возвращен стандартный код ошибки, обычно KErrNotSupported.

Класс HAL (hal.h) наследуется от HALData (hal_data.h), в котором содержится определение перечисления TAttribute.

Загаловочный файл: hal.h

Библиотека: hal.lib

This page was last modified on 30 May 2013, at 07:38.
64 page views in the last 30 days.
×