|
Пользовательский интерфейсЭтот раздел представляет из себя что-то вроде "руководства пользователя". Здесь плейер, по возможности, рассматривается уже с точки зрения пользователя, а не программиста или электронщика. В отличие от других разделов, здесь было сделано много изменений, поэтому текст является самостоятельным описанием, а не дополнением. Общие замечания о клавиатуреКлавиатура плейера состоит из 8-и кнопок, расположенных справа от экрана в два столбца по четыре кнопки в каждом. На рисунке указаны номера кнопок. Большая часть из них имеет различные функции, меняющиеся в зависимости от режима работы плейера, но есть и общие идеи. В интерфейсе плейера предусмотрен ряд экранных меню. Использование клавиатуры в них идентично: стрелки вверх/вниз (K2, K4), стрелки вправо/влево (перебор значений, выполнение действия - K6, K7), выбор (Enter, Ok - K1), отмена (K0). Экранное меню выбора файла имеет аналогичное управление, за исключением того, что кнопка Ok (K1) в нём не задействована, а кнопка отмены (K0) возвращает управление компоненту, вызвавшему меню (т.е. имеет смысл подтверждения). В этом меню путевое имя файла разбивается на строки (здесь: "Аквариум/2006 Беспечный русский бродяга/01-Афанасий Никитин.mp3"). Вы можете установить курсор на любую из строк и стрелками вправо/влево изменить выбранную часть путевого имени. Этот интерфейс похож на блуждание по файловому дереву в менеджерах, подобных Norton Commander или FAR, но здесь конечной точкой пути всегда является файл. Т.е. даже если вы делаете выбор среди директорий верхнего уровня, плейер все равно найдет в глубине какой нибудь допустимый полный путь (или не позволит выбрать данную директорию) и сразу отобразит его. Включение плейераПосле подачи питания должен сразу включится дисплей и подсветка, в середине чистого экрана появится надпись "** АГАТ **" (Хотел заставку сделать, но рисовать не умею. Вспомнил экран включения известной советской ПЭВМ. Чем плохо ?). Примерно полсекунды у плейера уходит на инициализацию всех устройств и файловых систем (плюс некоторое время, необходимое на выход в рабочий режим жесткого диска, если он используется). После чего плейер переходит в интерактивный режим работы одного из модулей. Модули режимовУ плейера есть четыре режима работы: Главное меню, Воспроизведение mp3, Чтение текстов, Звуковой генератор. Переход между последними тремя режимами возможен только через первый режим. Вход в некоторые режимы может быть невозможен, если не удалось инициализировать файловую систему. Режим Главного менюНа экран выводится главное меню, в нём перечислено шесть пунктов:
Операция смены устройства хранения информации имеет две особенности:
Порядок нумерации разделов в 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-файл. Существует три подрежима использования экрана и клавиатуры: "обычный", "mp3-инфо" и "эквалайзер". В начале воспроизведения очередного файла плейер переходит в режим "обычный", экран и клавиатура используются при этом следующим образом: Кнопка K5 (F) переключает дисплей в режим "mp3-инфо", а также используется в комбинациях с другими клавишами:
Уровни громкости выводятся после преобразования параметров Громкости и Балланса в параметры Громкость Левого, Громкость Правого. Перед воспроизведением очередного файла его полное путевое имя сохраняется в энергонезависимой памяти. В конце воспроизведения очередного файла, если воспроизведение не было прервано пользователем, в энергонезависимой памяти также сохраняются настройки громкости, балланса, состояние режима "инверсия левого" и настройки эквалайзера. Обратите внимание: при включении плейер переходит на начало последнего воспроизводимого трека. Однако используя закладку (K4+K6) вы можете сохранить и затем вернутся (K0+K2) с месту воспроизведения с точностью до долей секунды, что удобно при прослушивании электронных книг. Правильное восстановление закладки возможно только для файлов, объём которых не превышает 8 Гб (понятно, что на FAT такой файл записать нельзя, но если следующие прошивки начнут поддерживать UFS или EXT2...). Путевое имя файла выводится по следующим правилам: последние три строки (4-6) - всегда имя файла. Предыдущая (3) строка - каталог, в котором находится файл (если корень - остаётся пустой). Верхняя строка (2) - каталог, в котором находится предыдущий каталог (если корень - остаётся пустой). 2-я и 3-я строки выводятся инверсно. С mp3-тегами плейер не знаком и по возможности их игнорирует. Подрежим "mp3-инфо" отличается только использованием пространства экрана. Клавиатурные сочетания в нём аналогичны подрежиму "обычный": Первая строка содержит ту же информацию, что и в подрежиме "обычный". Остальные строки содержат информацию о воспроизводимом файле, причем данные для второй строки (инверсной) возвращает управляющий код mp3-декодера VLSI, а остальные строки берутся из заголовка очередного mp-кадра и декодируются центральным процессором. Очевидно, что содержимое 2-й и 4-й строк должно совпадать. Последняя - шестая - строка - это десятичное представление заголовка кадра. Подрежим "эквалайзер" почти полностью изменяет информацию на экране и действия комбинаций клавиш. Неизменным остается только комбинация K5+K2 (возврат в режим "обычный") и первая строка экрана: Помимо упомянутых на фотографии комбинаций есть также следующая: K3+K4 - она переключает режим "инверсия левого" (его состояние отображается во второй строке экрана). Область низких частот занимает диапазон от 0 до n Гц, где n может быть задана в пределах [0..150] Гц с шагом 10 Гц (клавиши K6, K7). В этом диапазоне эквалайзер может поднимать частотную характеристику в пределах [0..15] Дб с шагом 1 Дб (клавиши K2, K4). Область средних частот занимает диапазон от n до 48000 Гц, где n может быть задана в пределах [1..15] КГц с шагом 1 КГц (клавиши K0, K1). Регулировка уровня в этой полосе составляет [-12..+10.5] Дб с шагом 1.5 Дб (клавиши K3, K5). Режим чтения текстовВ этом режиме есть два подрежима: вывод текста и управляющее меню. Выведен может быть любой файл, но, понятно, что точки будут складываться в знакомые буквы, а буквы - в слова, только если выбран текстовый файл в кодировке КОИ-8. Код плейера дополняет абзацы красной строкой (1-3 пробела) и переносит строки по пробелам, по возможности не разрывая слова. Если же разрыв происходит, в конце строки может выводится (если помещается) знак переноса (код, однако, не знаком с правилами переноса, поэтому разрыв может произойти в любом месте слова). В качестве символа разделения абзацев текста ожидается LineFeed (код 10). Здесь приведена раскладка управляющих клавиш для подрежима вывода текста. В этом подрежиме весь экран занят выводимым текстом, каких либо поясняющих значков нет. Вперёд возможна свободная прокрутка, назад - только до начала текущего блока (очередная порция из 512-и знаков). Клавиши регулировки левого отступа позволяют с точностью до пикселя сдвигать левую границу вывода. Это станная, на первый взгляд, возможность, обусловлена следующим: корпус у плейера прочный, толщина стенок почти 4 мм. Экран расположен на этой глубине, рамка почти полностью прилегает к видимому полю. При внешнем угловом освещении это даёт заметную тень, которая мешает даже при включеной подсветке. Чтобы взгляд не попадал в область тени, иногда имеет смысл смещать текст на 1-4 пикселя вправо. Отверстие клавиши листания (K6) имеет слегка овальную форму. Это позволяет не только нажимать её, но и слегка отклонять в сторону, что легче физически (клавиши жесткие и небольшие - это позволяет плейеру обходится без функции блокировки клавиатуры) и позволяет избежать щелчка механизма мгновенного срабатывания. В подрежиме вывода текста процессор плейера переводится в режим пониженного энергопотребления, а VLSI-декодер в состояние сброса, при этом общая потребляемая плейером мощность падает почти в сто раз (если только вы не используете жесткий диск - он может потреблять на порядок большую мощность, чем ядро). Подрежим управляющего меню выглядит так:
Обратите внимание: текущая позиция в файле автоматически не сохраняется. Перевод плейера в другой режим, выключение, вход в меню выбора файла (даже если сразу вернутся назад) приведут, как минимум, к возврату на начало текущего файла. Пользуйтесь закладками ! Режим звукового генератораТут минимум комментариев. Генерируется синусоидальный сигнал, стрелками могут быть заданы частота дискретизации (Гц) и пропуски семплов (из небольшого фиксированного списка), а также уровни левого и правого канала. Нажатие 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: -". |