ReadMe
Манифест
Электроника
Программное обеспечение:
ЖКИ
VLSI
Разные мелочи
Интерфейсы накопителей
Файловые системы
Элементы пользовательского интерфейса
Модули режимов
Координаторы
Отладочный координатор
Пользовательский интерфейс
Фотографии
 
==> Orfey2

Пользовательский интерфейс

Этот раздел представляет из себя что-то вроде "руководства пользователя". Здесь плейер, по возможности, рассматривается уже с точки зрения пользователя, а не программиста или электронщика.

Общие замечания о клавиатуре

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

В интерфейсе плейера предусмотрен ряд экранных меню. Использование клавиатуры в них идентично: стрелки вверх/вниз (K2, K4), стрелки вправо/влево (перебор значений, выполнение действия - K6, K7), выбор (Enter, Ok - K1), отмена (K0). Экранное меню выбора файла имеет аналогичное управление, за исключением того, что кнопка Ok (K1) в нём не задействована, а кнопка отмены (K0) возвращает управление компоненту, вызвавшему меню (т.е. имеет смысл подтверждения).

В этом меню путевое имя файла разбивается на строки (здесь: "Аквариум/2006 Беспечный русский бродяга/01-Афанасий Никитин.mp3"). Вы можете установить курсор на любую из строк и стрелками вправо/влево изменить выбранную часть путевого имени. Этот интерфейс похож на блуждание по файловому дереву в менеджерах, подобных Norton Commander или FAR, но здесь конечной точкой пути всегда является файл. Т.е. даже если вы делаете выбор среди директорий верхнего уровня, плейер все равно найдет в глубине какой нибудь допустимый полный путь (или не позволит выбрать данную директорию) и сразу отобразит его.

Включение плейера

После подачи питания должен сразу включится дисплей и подсветка, в середине чистого экрана появится надпись "** АГАТ **" (Хотел заставку сделать, но рисовать не умею. Вспомнил экран включения известной советской ПЭВМ. Чем плохо ?).

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

Модули режимов

У плейера есть четыре режима работы: Главное меню, Воспроизведение mp3, Чтение текстов, Звуковой генератор. Переход между последними тремя режимами возможен только через первый режим.

Режим Главного меню

На экран выводится главное меню, в нём перечислено шесть пунктов:

  1. Выбрать файл... - нажатие стрелок вправо/влево или Ok активизирует меню выбора файла. Выбранный файл будет использоватся модулем воспроизведения mp3.
  2. Устройство - стрелки вправо/влево выбирают устройство хранения информации (SD или HDD), клавиша Ok инициирует процедуру смены устройства и раздела.
  3. Раздел - стрелки вправо/влево выбирают раздел (логический диск), клавиша Ok инициирует смену устройства и раздела.
  4. Режим - стрелки влево/вправо выбирают режим ("M" - воспроизведение mp3, "T" - чтение текстов, "O" - звуковой генератор), клавиша Ok передает управление выбранному модулю.
  5. Удалять средние - включает/выключает режим удаление средних частот при воспроизведении mp3-файлов.
  6. Инверсия левого - включает/выключает режим инверсии левого канала при воспроизведении mp3-файлов.

Операция смены устройства хранения информации имеет две особенности:

  1. Для надежной смены устройства, после указания номера устройства и раздела, нажмите Ok и выключите, а затем вновь включите питание плейера. Иногда это может не потребоваться (после нажатия Ok плейер нормально перейдет в рабочий режим без дополнительных действий), но так бывает не всегда. Это связано, в частности, с упрощенной схемой управления SD-картой.
  2. В плейере предусмотрена возможность перевода жесткого диска в глубокий сон, если в качестве накопителя выбирается SD-карта. Это может резко снизить энергопотребление, а также использоваться для уменьшения износа мехнических частей жесткого диска. Для этого нужно после успешного выбора SD-карты в качестве носителя вновь войти в Главное меню и нажать Ok на пункте Устройство или Раздел. Жесткий диск будет остановлен до обесточивания плейера.

Порядок нумерации разделов в Orfey'e несколько отличается от принятого в привычных операционных системах: расширенные разделы могут идти до основных, если они упоминаются в таблице разделов первыми (в MS-DOS, Windows 9x, Linux и FreeBSD, в случае единственного накопителя, первыми всегда идут основные разделы и только потом расширенные). Если вы укажете в качестве раздела "0", плейер будет воспринимать всё пространство накопителя как единый раздел (т.е. предполагая отсутствие таблицы разделов - a'la дискета). В разнообразных *NIXах это вполне допустимый вариант (во FreeBSD есть термин: Dangerously Dedicated - система может даже загружаться с такого носителя), в Windows же таким образом может быть отформатирована только дискета и umass storage - накопитель данных со стандартным USB-интерфейсом - флешка, SD карта, ... ну и, если очень хочется - жесткий диск, подключенный через переходник USB <-> ATA (т.е. такой же финт с тем же винтом, но подключенным по нормальному - к ATA-контроллеру - под Windows уже не прокатит).

Режим воспроизведения mp3-файлов

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

Кнопка K5 (F) сама по себе не вызывает каких либо действий (кроме включения подсветки), она используется только в комбинациях с другими клавишами.

Комбинация клавишФункция
K0+K2Сохранить закладку (путевое имя файла).
K1+K3Вернутся к закладке.
F+K1Меню выбора файла.
F+K2Быстрая перемотка вперёд. Комбинация фиксируется, как это было у обычных магнитофонов. Возврат в режим воспроизведения - повторное нажатие комбинации.
F+K3Переход в Главное меню. Он происходит также, если на текущем разделе больше нет файлов.
F+K4Возврат к началу текущего файла.
F+K6Балланс влево.
F+K7Балланс вправо.

Уровни громкости выводятся после преобразования параметров Громкости и Балланса в параметры Громкость Левого, Громкость Правого. Перед воспроизведением очередного файла его полное путевое имя сохраняется в энергонезависимой памяти. В конце воспроизведения очередного файла, если воспроизведение не было прервано пользователем, в энергонезависимой памяти также сохраняются настройки громкости, балланса, а также состояние режимов "удаление средних" и "инверсия левого".

Путевое имя файла выводится по следующим правилам: последние три строки (4-6) - всегда имя файла. Предыдущая (3) строка - каталог, в котором находится файл (если корень - остаётся пустой). Верхняя строка (2) - каталог, в котором находится предыдущий каталог (если корень - остаётся пустой). 2-я и 3-я строки выводятся инверсно. С mp3-тегами плейер не знаком и по возможности их игнорирует.

Режим чтения текстов

В этом режиме есть два подрежима: вывод текста и управляющее меню. Выведен может быть любой файл, но, понятно, что точки будут складываться в знакомые буквы, а буквы - в слова, только если выбран текстовый файл в кодировке КОИ-8. Код плейера дополняет абзацы красной строкой (1-3 пробела) и переносит строки по пробелам, по возможности не разрывая слова. Если же разрыв происходит, в конце строки может выводится (если помещается) знак переноса (код, однако, не знаком с правилами переноса, поэтому разрыв может произойти в любом месте слова). В качестве символа разделения абзацев текста ожидается LF (код 10).

Здесь приведена раскладка управляющих клавиш для подрежима вывода текста.

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

Вперёд возможна свободная прокрутка, назад - только до начала текущего блока (очередная порция из 512-и знаков).

Клавиши регулировки левого отступа позволяют с точностью до пикселя сдвигать левую границу вывода. Это станная, на первый взгляд, возможность, обусловлена следующим: корпус у плейера прочный, толщина стенок почти 4 мм. Экран расположен на этой глубине, рамка почти полностью прилегает к видимому полю. При внешнем угловом освещении это даёт заметную тень, которая мешает даже при включеной подсветке. Чтобы взгляд не попадал в область тени, иногда имеет смысл смещать текст на 1-4 пикселя вправо.

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

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

Подрежим управляющего меню выглядит так:

  1. Выбор файла - нажатие стрелок вправо/влево или Ok активизирует меню выбора файла. Выбранный файл будет выведен с начала в подрежиме вывода текста. На файл, выбираемый в режиме Главного меню и в режиме воспроизведения mp3, эта функция не влияет.
  2. Красная строка - стрелки вправо/влево выбирают количество пробелов, которое будет выводится в начале каждого абзаца.
  3. Подсветка - стрелки вправо/влево выбирают режим подсветки ("включена - 1", "выключена - 0", "автомат - i"), которое будет использоваться в подрежиме вывода текста (в данном меню и других режимах работы всегда используется "автомат"). Клавиша Ok сохраняет выбранное значение режима подсветки и левого отступа в энергонезависимой памяти.
  4. Закладка - стрелки влево сохраняет путевое имя файла, номер выводимого блока, а также количество пробелов красной строки в энергонезависимой памяти. Стрелка вправо позволяет вернутся к сохранённой закладке. При инициализации модуля выполняется автоматический переход к закладке # 1. Эти две закладки никак не связаны с закладками других модулей. Правильное восстановление закладки возможно только для файлов, объём которых не превышает 32 Мб.
  5. Главное меню - переход в режим Главного меню.

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

Режим звукового генератора

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

Каких либо энергосберегающих функций модуль не имеет.

Сообщения об ошибках и статусе

Сообщения об ошибках и статусе всегда выводятся инверсно в верхней строке дисплея и сопровождаются в конце строки знаками "+" или "-". Сообщения с "-" в конце текста всегда останавливает работу управляющего кода до нажатия любой клавиши. Ниже приводится список возможных сообщений и комментарии о ситуации, в которой они появляются (символ "*" указывает, что знак "+" или "-" выводится в зависимости от успешности выполненной операции. В случае "-" - операция закончилась с ошибкой - подробности можно узнать только используя отладочную прошивку):

Volume saved + - в конце воспроизведения mp3-файла произошло сохранение изменившихся параметров: громкости, балланса и т.д..

FS init: * - результат работы процедур инициализации файловой системы. "-" - какая либо логическая ошибка в загрузочной записи раздела, функционировании накопителя и т.д.. Их может быть много :)

VLSI init: - - ошибка инициализации mp3-декодера. Одновременно выводится также код завершения операции: 1 - через 2 мс после команды сброса линия DREQ не поднялась, 2 - через 5 мкс после команды сброса линия DREQ не упала, 3 - бит программного сброса не упал после установки.

File system init: * - ещё раз дублируется сообщение о статусе файловой системы, теперь уже координатором режимов.

SD init: * - статус физической инициализации SD-карты.

IDE init: * - статус физической инициализации жесткого диска.

Media init: * - тоже самое сообщение, но уже выводимое уровнем файловой системы - ей всё равно, какое конкретно устройство доступно или недоступно.

Partition table: * - результат анализа таблицы разделов и её расширений. "-" можно получить если запросить несуществующий раздел либо если очередной анализируемый сектор не содержит сигнатуры 0x55AA. Ошибки чтения, конечно, тоже учитываются.

Open: * - попытка доступа к файлу по указанному пути.

Read: - - ошибка чтения очередного блока файла.

Next: * - переход к следующему файлу. "-" можно получить, если файлов в данном разделе больше нет.

Prev: * - переход к предыдущему файлу. "-" указывает на то, что данный файл - первый в данном разделе.

* - PAUSE * - - модуль воспроизведения mp3 в состоянии паузы. Это не ошибка, просто задержка до нажатия любой клавиши.

Закладка заложена - - тоже не ошибка, просто сообщение о том, что модуль чтения текстов или модуль воспроизведения mp3 сохранил закладку.

Saved to EEPROM - - аналогично, модуль звукового генератора сохранил параметры в энергонезависимой памяти.

Step: * - переход к очередному блоку в режиме чтения текстов (скроллинг вниз).

Не могу найти закладку * - в случае "-" это означает, что модуль чтения текстов нашел файл, указанный в закладке, но при попытке найти нужную позицию файл оказался короче, чем ожидалось. Это может быть вызвано либо перестановкой имен файлов (FAT Sorter'ом или какими либо ещё операциями с файловой системой) либо просто урезанием файла.

Light & LShift saved - - режим подсветки и левый отступ сохранены в энергонезависимой памяти модулем чтения текста.

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

Несколько сообщений об ошибке могут следовать подряд: ошибка инициализации SD-карты, например, приведёт к последовательности сообщений: "SD init: -", "Media init: -", "FS init: -", "File system init: -".

Владимир