Пользовательский интерфейсЭтот раздел представляет из себя что-то вроде "руководства пользователя". Здесь плейер, по возможности, рассматривается уже с точки зрения пользователя, а не программиста или электронщика. Общие замечания о клавиатуреКлавиатура плейера состоит из 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-файл, а экран заполнен сопутствующей информацией, смысл которой объясняется приведённой фотографией. Там же указаны наиболее употребительные функции клавиш управления. Эти функции вызываются нажатием одиночных клавиш. Кнопка K5 (F) сама по себе не вызывает каких либо действий (кроме включения подсветки), она используется только в комбинациях с другими клавишами.
Уровни громкости выводятся после преобразования параметров Громкости и Балланса в параметры Громкость Левого, Громкость Правого. Перед воспроизведением очередного файла его полное путевое имя сохраняется в энергонезависимой памяти. В конце воспроизведения очередного файла, если воспроизведение не было прервано пользователем, в энергонезависимой памяти также сохраняются настройки громкости, балланса, а также состояние режимов "удаление средних" и "инверсия левого". Путевое имя файла выводится по следующим правилам: последние три строки (4-6) - всегда имя файла. Предыдущая (3) строка - каталог, в котором находится файл (если корень - остаётся пустой). Верхняя строка (2) - каталог, в котором находится предыдущий каталог (если корень - остаётся пустой). 2-я и 3-я строки выводятся инверсно. С mp3-тегами плейер не знаком и по возможности их игнорирует. Режим чтения текстовВ этом режиме есть два подрежима: вывод текста и управляющее меню. Выведен может быть любой файл, но, понятно, что точки будут складываться в знакомые буквы, а буквы - в слова, только если выбран текстовый файл в кодировке КОИ-8. Код плейера дополняет абзацы красной строкой (1-3 пробела) и переносит строки по пробелам, по возможности не разрывая слова. Если же разрыв происходит, в конце строки может выводится (если помещается) знак переноса (код, однако, не знаком с правилами переноса, поэтому разрыв может произойти в любом месте слова). В качестве символа разделения абзацев текста ожидается LF (код 10). Здесь приведена раскладка управляющих клавиш для подрежима вывода текста. В этом подрежиме весь экран занят выводимым текстом, каких либо поясняющих значков нет. Вперёд возможна свободная прокрутка, назад - только до начала текущего блока (очередная порция из 512-и знаков). Клавиши регулировки левого отступа позволяют с точностью до пикселя сдвигать левую границу вывода. Это станная, на первый взгляд, возможность, обусловлена следующим: корпус у плейера прочный, толщина стенок почти 4 мм. Экран расположен на этой глубине, рамка почти полностью прилегает к видимому полю. При внешнем угловом освещении это даёт заметную тень, которая мешает даже при включеной подсветке. Чтобы взгляд не попадал в область тени, иногда имеет смысл смещать текст на 1-4 пикселя вправо. Отверстие клавиши листания (K6) имеет слегка овальную форму. Это позволяет не только нажимать её, но и слегка отклонять в сторону, что легче физически (клавиши жесткие и небольшие - это позволяет плейеру обходится без функции блокировки клавиатуры) и позволяет избежать щелчка механизма мгновенного срабатывания. В подрежиме вывода текста процессор плейера переводится в режим пониженного энергопотребления, при этом общая потребляемая плейером мощность падает примерно в два раза (если только в плейере не установлен жесткий диск - он может потреблять на порядок большую мощность, чем ядро). Подрежим управляющего меню выглядит так:
Обратите внимание: текущая позиция в файле автоматически не сохраняется. Перевод плейера в другой режим, выключение, вход в меню выбора файла (даже если сразу вернутся назад) приведут, как минимум, к возврату на начало текущего файла. Пользуйтесь закладками ! Режим звукового генератораТут минимум комментариев. Генерируется синусоидальный сигнал, стрелками могут быть заданы частота дискретизации и период волны (из небольшого фиксированного списка), а также уровни левого и правого канала. Нажатие 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: -". |