Namespaces
Variants
Actions

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

Jump to: navigation, search
Метаданные

Статья
Перевод:
Последнее редактирование: hamishwillee (27 Aug 2012)

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 27 August 2012, at 05:18.
166 page views in the last 30 days.
Nokia Developer aims to help you create apps and publish them so you can connect with users around the world.

京ICP备05048969号  © Copyright Nokia 2013 All rights reserved