Перейти к содержанию
    

Применение функции автоматического отключения экрана и технологии управления питанием на базе T507

Некоторые клиенты полагаются на питание своих продуктов от аккумулятора и имеют ограниченную емкость аккумулятора. Если в изделии используется экран, он будет одним из основных источников энергопотребления. Таким образом, своевременное выключение экрана может эффективно продлить срок службы батареи и улучшить взаимодействие с пользователем. Кроме того, функция автоматического отключения экрана не только продлевает срок службы экрана, но и эффективно предотвращает риск утечки информации и нарушения конфиденциальности. Вообще говоря, функция автоматического отключения экрана играет важную роль в повышении производительности устройства, экономии энергии и защите конфиденциальности.

Задействованные очки знаний:

1. Структура input_event: структура данных, используемая для представления события ввода Linux.

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

В частности, структура struct input_event обычно содержит следующие поля:

  • Структура timeval time: временная метка возникновения события.
  • Краткий тип без знака: тип события (например, нажатие клавиши, отпускание и т. д.).
  • Краткий код без знака: код события (например, какая клавиша была нажата).
  • Целое значение: значение события (нажатие/отпускание клавиши и т. д.).

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

2. Функции и различия функции чтения и функции выбора.

Функция read() и функция select() — это функции, используемые в системах Linux для обработки операций ввода-вывода, но есть некоторые различия в том, что они делают и как они используются.

(1) Функция чтения ():

Функция read() используется для чтения данных из файлового дескриптора, такого как файл, сокет и т. д. Это блокирующий системный вызов, то есть, когда нет данных для чтения, программа будет заблокирована до тех пор, пока есть данные для чтения или ошибка. Функция read() считывает данные из файлового дескриптора в указанный буфер и возвращает фактическое количество прочитанных байтов или -1 в случае возникновения ошибки.

(2)Выберите () функцию:

Функция select() отслеживает несколько файловых дескрипторов, чтобы определить, находятся ли они в читаемом, записываемом или ненормальном состоянии.

С помощью функции select() можно добиться мультиплексирования, то есть для операции ввода-вывода выбирается один из нескольких файловых дескрипторов без блокировки и ожидания. Функция select() блокирует процесс до тех пор, пока хотя бы один из указанных файловых дескрипторов не окажется в состоянии чтения, записи или исключения, или пока не истечет указанное время ожидания. Функция select() обычно используется для одновременного прослушивания нескольких файловых дескрипторов, поэтому, когда любой файловый дескриптор готов, можно выполнить соответствующие операции чтения и записи для повышения эффективности программы.

Таким образом, функция read() представляет собой блокирующую операцию для чтения данных из одного файлового дескриптора, а функция select() представляет собой функцию мультиплексирования состояний нескольких файловых дескрипторов, чтобы помочь программе более эффективно управлять несколькими операциями ввода-вывода. . Функция select() обычно используется в ситуациях, когда вам необходимо одновременно прослушивать несколько файловых дескрипторов.

В программе события считываются с устройства ввода через функцию read(). Если о событии не сообщается, функция read() блокирует программу и не завершает работу до тех пор, пока не произойдет событие или не произойдет ошибка. Следовательно, если о событии не сообщается, программа останется в функции чтения () и не будет выполнять последующие операции печати. Если сообщается о событии, функция read() считывает данные события и возвращает количество байтов события. В этом случае программа выполняет последующую операцию печати, чтобы распечатать информацию о событии.

Вот почему сообщения печатаются только при наличии сообщения о событии, а не при отсутствии сообщения о событии.

Чтобы распечатать информацию, даже если о событии не сообщается, вы можете установить тайм-аут перед чтением события. Если в течение периода ожидания ни о каком событии не сообщается, будет напечатана подсказка. Это можно сделать с помощью функции select().

В этом модифицированном коде мы используем функцию select() для ожидания готовности дескриптора файла к операции чтения, и если он не готов в течение периода ожидания, она возвращает 0, после чего мы печатаем «Событие не сообщается». в течение 1 секунды». Если все готово, прочитайте событие и распечатайте соответствующее сообщение. При этом напоминание будет печататься каждые 1 секунду, даже если ни о каких событиях не сообщается.

3. Символьные устройства для /dev/disp

Переключатель управления устройством отображения

Метод работы строкового устройства — disp_fops:

Применение функции автоматического отключения экрана и технологии управления питанием на базе T507

Фактически только две функции, disp_ioctl() и disp_mmap(), имеют конкретные реализации. ioctl может ссылаться на: " T507_Display_Module_Use_Documentation.pdf ".

Применение функции автоматического отключения экрана и технологии управления питанием на базе T507

4. Режим сна

//система/питание/состояние

заморозить

заморозка: в состоянии «заморозить» система приостановит работу процессора, но память и устройства останутся активными, чтобы возобновить работу быстрее.

Mem: в состоянии сна Mem система сохраняет все в памяти и отключает ненужные устройства для экономии энергии. ЦП перестает работать, а память и некоторые необходимые устройства продолжают работать.

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Модератор: из всей этой простыни текста я так и не понял - что же вы продаете. Уточните предмет продажи или определитесь, в какой раздел форума эту тему перенести.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...