Join Now
Quality Rating:
  • Currently 0.0 / 5
(0.0 / 5 - 0 votes cast)
Expertise Level:
  • Currently 0.0 / 5
(0.0 / 5 - 0 votes cast)

This page was last modified 15:39, 23 June 2008.

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

From Forum Nokia Wiki

Перевод с английского, оригинальная статья находится здесь.


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

Related Discussions
Thread Thread Starter Forum Replies Last Post
[moved] Why SDK miss guide developers aamitgupta Tools and SDK Feedback 9 2008-07-16 13:06
user::TickCount() 's problem cidhx General Symbian C++ 2 2004-01-03 08:26
Getting firmware version. kiranpuranik General Symbian C++ 5 2006-11-08 00:35
Camer on N95: How do i know that the primary camera is closed?? gmsk19 Symbian Media (Graphics & Sounds) 4 2008-06-09 15:14
What is 6670 machine UID? ppiggy General Symbian C++ 3 2004-11-15 05:29
 
Powered by MediaWiki
     
     RDF Facets:
     
     
     qfnZtypeQUqfnTypeZCommunityContentQ
     qfnZtypeQUqfnTypeZWebpageQ
     qfnZtypeQUqfnTypeZWikiContentQ
     qmarsZlanguageQUxhttpE3aE2fE2fswE2enokiaE2ecomE2flanguageE2d1E2fenX