Способы и системы рукописного ввода текстовой информации
Характеристика и сущность планшета как устройства рукописного ввода текстовой информации. Сущность светового пера и особенности его применения. Виды реализации распознавания рукописного ввода информации. Функции чтения позиций светового пера и планшета.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 09.03.2009 |
Размер файла | 196,6 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Министерство образования и науки Украины
Пояснительная
записка
К выпускной работе бакалавра
На тему: «Способы и системы рукописного ввода текстовой информации»
2008
Введение
В свое время создание письменности оказалось одним из величайших изобретений в истории человечества. Кусок бумаги и ручка или карандаш до сих пор не теряют своего значения в современной жизни, а вот с компьютерами они сопрягаются не очень хорошо.
В наш век технологий на рынке появляется всё больше устройств позволяющих воплощать капризы людей в реальность. Так ещё в 1964 году был разработан первый графический планшет. Они содержали сетку тонких проволок, создающих последовательность слабых магнитных импульсов, которые улавливались пером, что позволяло определять текущее положение пера.
На данный момент производители различных фирм, начиная с фирмы Microsoft,исконно занимающийся работой с компьютерами, и заканчивая фирмами-производителями мобильных телефонов, представляют на общий обзор различные системы рукописного ввода текстовой информации.
Во всём многообразии, можно выделить основной способ ввода, который являлся прародителем всех существующих на данный момент способов рукописного ввода - это планшет и световое перо. О них дальше и пойдёт речь.
1. Планшет - как устройство рукописного ввода текстовой информации
Планшет - это полуавтоматическое устройство ввода графической информации со свободно перемещаемым указателем координат. Планшет представляет собой некоторую ограниченную плоскость, полностью соответствующую по конфигурации рабочему полю экрана, но конструктивно с ним не связанную. Когда оператор "пишет" на поверхности планшета, положение соприкасающегося с ним контакта преобразуется в абсолютное значение координат формата экрана. Лучшие образцы планшетов обеспечивают преобразование положения пишущего устройства в координату с погрешностью 0,1%. Использование планшетов исключает необходимость наличия движущегося курсора на экране, так как изображение может воспроизводиться непосредственно в процессе рисования.
Одним из наиболее простых с точки зрения используемых физических принципов планшетов аналогового типа являются акустические, основанные на измерении времени распространения звуковой волны в твердом плоскостном звукопроводе. Так как скорость распространения акустических колебаний в твердых телах постоянна, измеренное время соответствует координате (относительно неподвижного излучателя) точки, в которой расположен приемник. Этот способ использован в кодирующем планшете, схема которого показана на рисунке 1.1.
Рис 1 1 - Схема кодирующего планшета
Функцию звукопровода здесь выполняет стеклянный планшет П, к взаимно перпендикулярным торцам которого приклеены два пьезоэлектрических излучателя ПИх и ПИу. Пьезоэлектрический приемник ПП изготовлен в виде трехгранного стержня с заостренным наконечником, сечение которого является равносторонним треугольником. К каждой грани стержня приклеены идентичные пьезоэлементы. Для возбуждения акустических колебаний в звукопроводе используется генератор периодических прямоугольных импульсов Г, имеющий два независимых выхода Uх и Uу, к которым подключены соответственно излучатели ПИх и ПИу. Схема формирователя координатной метки ФКМ состоит из трех одинаковых усилителей, к выходу которых подключены пьезоэлементы приемника. Выходные напряжения усилителей суммируются, что позволяет сделать сигналы метки не зависимыми от повтора и наклона приемника относительно плоскости планшета. Время прохождения акустических волн от излучателей к приемнику измеряется схемами формирования координатных прямоугольных импульсов ФКИх и ФКИу, содержащими триггеры, устанавливаемые в положение "1" передними фронтами импульсов генератора и сбрасываемые в положение "0" импульсом координатной метки. На выходе схемы управления планшетом использован обычный преобразователь длительности импульса в код. Когда приемник прижат к поверхности планшета, ФКИх и ФКИу генерируют периодические импульсы, длительности которых tх и tу пропорциональны измеряемым координатам. Чтобы не возникла интерференция взаимно перпендикулярных волн, возбуждаемых в планшете, импульсы Uх и Uу сдвинуты на время, достаточное для полного затухания одной волны. В ряде магнитострикционных устройств используются магнитострикционные свойства материала, из которого изготовлено рабочее поле планшета. При возбуждении ультразвуковой волны внутри предварительно намагниченного магнитострикционного материала в месте прохождения фронта волны намагниченность изменяется. Это изменение напряженности магнитного поля улавливается катушкой индуктивности, расположенной в указателе координат, и преобразуется в электрический сигнал, свидетельствующий о том, что фронт ультразвуковой волны находится под катушкой. Определение координат в этих устройствах производится так же, как и в акустических,- путем измерения времени распространения фронта ультразвуковой волны от края планшета до указателя координат. Точностные характеристики рассматриваемых устройств относительно невысоки вследствие сильной зависимости скорости распространения волны от внешних факторов, в частности от температуры, давления, влажности, неизотропности структуры материала звукопровода. Важное место среди устройств ввода занимают устройства, называемые сеточными планшетами, основанные на электрическом принципе. Они делятся на контактные, и в зависимости от того, какая из составляющих электромагнитного поля участвует в формировании измерительного сигнала, эти устройства делятся на емкостные, в которых преобразуется электрическая составляющая электромагнитного поля, и индукционные, в которых преобразуется магнитная составляющая.
Рис 1.2 -
В контактных сеточных планшетах рабочее поле состоит из ортогональных координатных шин, разделенных тонким слоем диэлектрика, с отверстием в узлах пересечения. На планшет помещается носитель с графической информацией. Считывание осуществляется путем нажатия карандашом на выбранный элемент изображения, расположенный в узле матрицы шин. Верхний лист планшета упруго деформируется и происходит замыкание шины Уi на шину Хi(см. рисунок). Шины Х последовательно возбуждаются от Дш У. Сигнал с шины Хi преобразуется шифратором Шx в двоичный код. Одновременно осуществляется считывание кода координаты У со счетчика СчУ. Разрешающая способность таких планшетов зависит от шага координатной сетки.
На поверхности емкостных и индукционных планшетов создается система вертикальных и горизонтальных проводников, выполненных способом печатного монтажа. Ширина каждого из проводников и расстояние между ними составляет несколько десятков микрон, что позволяет организовать координатную сетку размерностью 1000*1000 градаций и более. Вертикальные и горизонтальные проводники разделены между собой тонкой изолирующей пленкой, а к концам их, выведенным на края планшета, подводится питание от распределителя импульсов. При протекании переменного электрического тока по проводникам координатной сетки вокруг них возникает переменное электромагнитное поле, преобразуемое кольцевым индукционным датчиком в измерительные сигналы, по которым судят о местоположении датчика, укрепленного на "рисующем" стержне, по отношению к координатным шинам планшета. Эти сигналы поступают в схему управления дисплеем, где дешифруются как координаты точки экрана. При движении стержня в памяти образуется последовательность координат, при этом получаемые данные непрерывно проверяются, чтобы обнаружить ошибку или отрыв стержня от планшета.
В емкостных сеточных планшетах указатель координат выполнен в виде штыревого зонда, соединенного с колебательным контуром, имеющим высокое резонансное сопротивление на частоте измерительного сигнала. На практике емкостные сеточные планшеты не получили широкого распространения из-за сложности обеспечения высокой помехозащищенности (для обеспечения достоверности результатов измерения в этих устройствах используются специальные приемы кодирования, в частности код Грея). Кроме того, на этих устройствах нельзя кодировать документы, выполненные карандашом, так как графит как токопроводящий материал вносит погрешность в измерения электрической составляющей поля.
В индукционных сеточных планшетах преобразование магнитной составляющей поля в электрический измерительный сигнал происходит в индукционном датчике, имеющем малое выходное сопротивление. Помехозащищенность такого датчика выше, чем у емкостного, что позволяет получить более высокую разрешающую способность устройства без использования специальных приемов кодирования сигналов, возбуждающих координатные шины планшета. Считывание информации на таких устройствах может производиться с любых немагнитных носителей, что расширяет их область применения по сравнению с емкостными сеточными планшетами.
Для устройств, соответствующих современному уровню развития техники, характерно наличие высокого уровня интеллекта. Это достигается путем встраивания внутрь однокристальных микроЭВМ, позволяющих реализовать в устройстве несколько режимов работы, таких как режим поточечного (однократного) вывода координат точек, режим непрерывного считывания координат, непрерывный инкрементальный режим, при котором происходит каждый раз по достижении любой из считываемых координат величины наперед заданного значения инкремента (0.1,0.2,0.3 мм и т.д.), режим выдачи координат местонахождения координатного указателя по запросу из ЭВМ, диагностический режим. МикроЭВМ позволяет также осуществлять выдачу значения координат как в двоичном, так и в символьном формате в зависимости от характера решаемых задач и типа используемой аппаратуры.
2. Световое перо - как устройство рукописного ввода текстовой информации
Световое перо относится к полуавтоматическим устройствам, осуществляющим непосредственный контакт с экраном, и работает по принципу временного совпадения. Пером это устройство названо условно, так как никакого воздействия на экран оно не оказывает, а само воспринимает его световое излучение. Конструктивно световое перо состоит из цилиндрического корпуса, внутри которого размещен светочувствительный элемент. На заостренном конце пера имеется отверстие, в котором закреплена линза, фокусирующая попадающий на нее свет и направляющая его на светочувствительный элемент. Последний связан с усилителями, воздействующими на пороговую схему. Все эти элементы обычно собраны в одном корпусе. Для исключения воздействия окружающего света перо включается лишь после прижатия его конца к поверхности экрана. В некоторых конструкциях пера связь с экраном осуществляется с помощью пучка оптических волокон, а светочувствительный элемент и усилители располагаются в отдельной сборке. При такой конструкции размеры и масса пера уменьшаются.
Рис 2.1 - Конструкция светового пера и его электрическая схема
Конструкция (а) и электрическая схема (б) светового пера: 1 - соединительный кабель, 2 - транзистор, 3 - корпус, 4 - наконечник,5 - фотодиод, 6 - пружинный контакт, 7 - проводники.
При совмещении кончика пера с отображаемым на экране графическим элементом или знаком в его схеме возникает импульс в момент генерирования блоком управления дисплея именно этого элемента. Если регенерация изображения осуществляется путем циклического считывания кодов из памяти и их преобразования, как, например, в квазиграфических или функциональных дисплеях, то в момент возникновения импульса от светового пера может быть прочитан адрес ячейки автономной памяти, где записан код отмеченного пером элемента. При использовании для регенерации изображения отдельной памяти, как в дисплеях с полнографическими возможностями, по моменту возникновения импульса определяется координата точки экрана, так как ей соответствует текущее значение адреса памяти регенерации. По этому адресу программно могут быть определены коды отмеченного элемента в исходном файле. Указав пером на какой-либо элемент и определив таким образом для схемы управление его расположение в памяти, оператор нажатием функциональной клавиши выдает команду на соответствующее изменение этого элемента: стирание, сдвиг, изменение конфигурации, замену и так далее. Очевидно, что сигнал от светового пера может быть получен только при касании им точки экрана, где имеется светящееся изображение, так что определить какую-либо точку в темном месте экрана с помощью пера невозможно. Для устранения этого недостатка в дисплеях растрового типа с памятью регенерации предусматривается режим так называемого "негативного изображения", когда высвечиваются все точки формата кадра, кроме тех, через которые проведены графические образы. Осуществляется этот режим простым инвертированием импульсов модуляции, поступающих на трубку. Заметим также, что использование светового пера в принципе невозможно для графических дисплеев, построенных на базе запоминающих трубок, где свечение экрана постоянно во времени. Световое поле, действующее на перо, обычно значительно больше размера одной точки формата экрана ЭЛТ, что усложняет точное определение координат, особенно при сложных насыщенных изображениях. Поэтому процесс идентификации графического элемента обычно подтверждается каким-либо признаком. Если в процессе касания экрана перо зафиксировало точку, относящуюся к определенному графическому элементу, то блок управления дисплея должен обеспечить, например, мерцание этого элемента или изменение его яркости, что позволяет оператору судить об успешности его действия. Принцип работы светового пера в режиме позиционирования, то есть "рисования" новых графических элементов. При этом режиме схема управления дисплеем выводит на экран в некоторой точке изображение "курсора" или перекрестия. Оно используется в качестве визуальной опорной точки на экране. "Захватив" изображение курсора световым пером, оператор перемещает перо по экрану в нужном направлении. Блок управления курсором обеспечивает его движение вслед за пером. Так как текущие координаты центра курсора всегда известны, то в памяти остается множество координат точек, через которые он проходит. Существуют различные способы реализации такого слежения. Обычно курсор представляет собой набор точек, образующих вертикальный и горизонтальный отрезки, иногда это может быть небольшой светящийся круг или квадрат. Площадь курсора примерно соответствует размерам отверстия на конце светового пера. Когда это отверстие частично смещается относительно центра курсора, то лишь определенные точки перекрестия в процессе их регенерации на экране образуют через световое перо импульсы. Используя эту информацию, схема управления или программа ЭВМ перемещает курсор так, чтобы его центр совпадал с центром отверстия пера. Процесс определения рассогласования и передвижения курсора осуществляется непрерывно. При определенных условиях возможен "отрыв" светового пера от курсора. Тогда последний остается неподвижным и должен быть снова "захвачен" оператором. В процессе движения курсора могут быть реализованы различные режимы, задаваемые через функциональную клавиатуру: высвечивание точек в отдельных фиксированных курсором позициях, проведение векторов или дуг через заданные точки, непрерывное "рисование" и пр. При разработке светового пера его оптические и электрические свойства - чувствительность и быстродействие - должны быть согласованы с параметрами излучения люминофора и длительностью импульсов модуляции. Лучшие современные образцы перьев обеспечивают чувствительность к излучению мощностью в несколько микроватт на квадратный сантиметр при длительности импульсов модуляции порядка 200 нс. На чувствительность пера влияет и спектр излучения, определяемый используемым в ЭЛТ люминофором. Несмотря на значительные достижения в области разработки светочувствительных элементов, проблема использования светового пера при цветном раствором изображении и высокой разрешающей способности экрана остается до конца не решенной.
3. Виды реализации распознавания рукописного ввода
В реализации рукописного распознавания на сегодня есть два основных направления: аналитическое распознавание (графический или структурно-лингвистический метод) и методы, основанные на нейросетевых технологиях. В первом случае система пытается распознать вводимые символы, основываясь на том или иным образом формализованных знаниях о рукописных глифах и их сочетаниях с применением различных форм словарной обработки. Во втором -- используется соответствующим образом обученная нейросеть, как правило, со специфическими доработками базовых алгоритмов. Большинство доведенных до коммерческого уровня систем довольно сложно однозначно классифицировать, поскольку нейросетевая «распознавалка» вполне может использовать словарную информацию для повышения качества распознавания и наоборот. Тем не менее у аналитических систем есть одно очевидное преимущество -- они практически не требуют обучения. Сильная сторона нейросетевых алгоритмов -- в общем случае несколько меньшие требования к ресурсам, что позволяет адаптировать их для мобильных устройств. Но зато аналитические системы (по определению) не так сильно зависят от базы росчерков для каждого конкретного языка и, в общем, позволяют корректно распознавать даже «незнакомые» системе языки (при условии сходства в начертании символов, разумеется).
Основной единицей «измерения» в системе распознавания выступает штрих, нарисованный пользователем без отрыва пера. При этом символ, соответствующий одной букве алфавита, может быть написан одним (скажем, е, с) или несколькими (х, ж) росчерками. Как известно, с распознаванием разных типов почерка человеческий глаз справляется без ощутимых затруднений, что, в общем, неудивительно, если вспомнить, что за работу одного только фоторецептора сетчатки отвечает около 700 нейронов. В программной системе, связанной естественными ограничениями, которые налагает аппаратная база, этап распознавания, очевидно, упрощен, но, тем не менее, все равно предполагает большой объем вычислительной работы и анализ огромного количества параметров (до 1000), таких, как количество росчерков, кривизна, направление движения, пересечения и др. В ходе процедуры распознавания анализируется траектория пера, причем в несколько этапов. Первый из них -- фильтрация, устранение неровностей (шумов) траектории, появление которых неизбежно при написании символов (дрожание руки и т. д.). По завершении процедуры фильтрации и первоначального анализа символ сопоставляется с эталоном. Эталон -- набор устойчивых признаков, характеризующих букву. За каждой буквой закреплено несколько эталонов, соответствующих наиболее распространенным способам ее написания. Сопоставление параметров, полученных в результате анализа траектории введенного символа, выполняется для каждой буквы алфавита, вероятность совпадения выражается в некоторой обобщенной оценке или процентах. Далее вполне закономерной выглядит гипотеза, что совпадение максимального числа параметров символа и эталона означает появление искомого символа. В ряде случае также имеется этап постобучения, когда пользователь из нескольких предлагаемых системой распознавания символов вручную выбирает правильный, таким образом «обучая» ее (впрочем, при достаточно большой БД почерков эта процедура обычно опускается).
При подключении подсистемы словарной обработки процесс усложняется, охватывая не только символы, но и более крупные лексические единицы. Вводимые пользователем слова в процессе обработки очередного символа сопоставляются со словоформами из словарной базы.
При совпадении слова, даже содержащего неточно распознанные символы или опечатки, с образцом из словаря в процедуру распознавания вносятся соответствующие коррективы. В данном случае может возникнуть проблема с вводом аббревиатур или транслитерации, но она обычно решается переключением соответствующих параметров в настройках системы распознавания. Зато средства орфографического контроля позволяют обеспечить достаточно устойчивое распознавание не только побуквенного, но и слитного ввода -- одну из наиболее сложных проблем для разработчиков. Природа трудностей очевидна: на этапе графического анализа сложность возрастает на порядок, поскольку к вариантам распознавания отдельных символов добавляются варианты разбиения на слова и на буквы.
Силы нажатия и угла наклона пера, в планшетах позволяют весьма существенно повысить качество распознавания как побуквенного, так и слитного.
4. ФУНКЦИЯ ЧТЕНИЯ ПОЗИЦИИ СВЕТОВОГО ПЕРА
Бейсик может определять позицию светового пера двумя способами. При первом программа непрерывно определяет статус пера. При втором, когда перо используется, то управление временно передается процедуре, обеспечиваемой Вашей программой. Для непрерывного контроля за пером надо использовать оператор PEN как функцию вформе X = PEN(n), где n - кодовый номер, определяющий какую информацию Вы хотите получить о пере и его позиции. Возможные значения n такие:0 возвращает -1, если перо было выключено со времени последнего запроса,
0 - если нет 1 возвращает последнюю координату x (0-319 или 0-639), в ко-торой перо было включено (оно могло быть впоследствии передвинуто, если оставалось включенным)2 возвращает последнюю координату y (0-199), в которой перо было включено.3 возвращает -1, если перо включено и 0 - если нет4 возвращает текущую x координату (0-319 или 0-639) пера5 возвращает текущую y координату (0-199) пера6 возвращает позицию - номер строки (1-24), в которой перо было последний раз активизировано7 возвращает позицию - номер столбца (1-40 или 1-80), в которой перо было последний раз активизировано8 возвращает текущую позицию - номер строки (1-24)9 возвращает текущую позицию - номер столбца (1-40 или 1-80)В данном программе определяется включено ли перо, и если это так, то берется текущее его положение:100 IF NOT PEN(3) THEN 130 'проверяем включено ли перо110 X = PEN(4) 'получаем координату точки по оси x120 Y = PEN(5) 'получаем координату точки по оси y130 ... 'продолжаем программуБолее гибкие возможности использования светового пера предоставляются оператором ON PEN GOSUB. Этот оператор указывает номер строки, в которой начинается процедура, активизируемая при включении пера. Бейсик достигает этого проверкой состояния пера после выполнения каждой его инструкции. Процедура может получить позицию пера и предпринять требуемые действия. Когда процедура заканчивается, то программа продолжается с того места, где она была при включении пера.ON PEN GOSUB не работает до тех пор, пока она не активизирована оператором PEN ON. PEN OFF отменяет ее работу.
Смысл этого состоит в том, что постоянная проверка статуса пера замедляет работу программы, поэтому ее надо осуществлять только когда это необходимо. Если программа начинает выполнять критическую часть кода, когда нельзя использовать процедуру ON PEN GOSUB, необходимо написать PEN STOP. В этом случае будет продолжаться проверка статуса пера, и если перо будет включено, то этот факт будет запомнен. Однако пока не будет встречен оператор PEN ON, управление не будет пере-даваться процедуре ON PEN GOSUB.Данная программа вызывает остановку программы, когда нажата кнопка на световом пере. Точка в позиции светового пера включается процедурой, обрабатывающей включение светового пера.100 ON PEN GOSUB 5000 'устанавливаем процедуру для светового110 PEN ON 'пера и включаем режим отслеживания его..5000 '''процедура обработки светового пера5010 X = PEN(4) 'получаем координату X5020 Y = PEN(5) 'получаем координату Y5030 PSET(X,Y) 'включить эту точку5040 RETURN 'Средний уровень.Функция 4 прерывания 10H BIOS сообщает текущую позицию светового пера. У нее нет входных регистров. При возврате AX содержит 0, если перо не включено и 1 - если получены новые значения для его позиции. Возвращается два набора координат, позиции точки и позиции строки и столбца. Позиции символа содержатся в DX, причемDH содержит строку (0-24), а DL - столбец (0-79). Позиция точки содержится в CH и BX, причем CH содержит вертикальную координату (0-199), а BX - горизонтальную (0-319 или 0-639, в зависимости от режима терминала).;---читаем и запоминаем положение светового пераMOV AH,4 ;номер функцииINT 10H ;прерывание BIOSCMP AH,1 ;новая позиция?JE NO_READING ;если нет, то уходимMOV COL,BX ;сохраняем горизонтальную координатуMOV CL,CH ;помещаем вертикальную координатуMOV CH,0 ;в CXMOV ROW,CX ;сохраняем вертикальную координатуНизкий уровень.По своей сути световое перо является расширением видеосистемы и как таковое использует микросхему контроллера CRT 6845. Позиция светового пера дается одним 2-хбайтным значением, хранящимся в регистрах 10H (старший байт) и 11H (младший байт) микросхемы. Порт с адресом 3DCH устанавливает задвижку световогопера, а с номером 3DBH - сбрасывает ее.;---проверка светового пера и чтение его позицииMOV DX,3DAH ;указываем на регистр статусаIN AL,DX ;получаем информациюTEST AL,4 ;проверяем выключательJNZ NOT_SET ;на выходTEST AL,2 ;проверяем триггерJZ NOT_SET ;на выходSUB DX,7 ;указываем на регистр адреса 6845MOV AL,10H ;запрос на старший байт позиции пераOUT DX,AL ;посылаем запросINC DX ;указываем на регистр данных 6845IN AL,DX ;получаем значениеXCNG AH,AL ;запоминаем его в AHDEC DX ;возвращаемся к адресному региструMOV AL,11H ;теперь хотим получить младший байтOUT DX,AL ;посылаем запросINC DX ;назад к регистру данныхIN AL,DX ;теперь это значение в AX
5. Описание класса работы с планшетом
Создадим небольшой класс (на Си++) для иллюстрации основных приемов программирования планшета. После инсталляции SDK в первую очередь следует настроить параметры будущего проекта, В частности добавить пути к заголовочным и библиотечным файлам SDK, а также подключить файл wintab32.lib. В этом случае инициализация соответствующих библиотек будет выполняться автоматически, и вмешиваться в этот процесс обычно не требуется, перехват невразумительного сообщения об ошибке при отсутствии драйверов или каких-то проблемах с планшетом (по умолчанию выводится малопонятное сообщение об отсутствии необходимых DLL). Если планшет -- не единственный способ ввода текстовой информации, то имеет смысл сделать динамическую загрузку библиотеки планшета и самостоятельную обработку всех возможных ошибок.
Для работы с функциями API достаточно подключить заголовочные файлы. Но эта процедура реализована не совсем обычно. Например,
#include "wintab.h"#define PACKETDATA PK_X | PK_Y | PK_BUTTONS | PK_NORMAL_PRESSURE#define PACKETMODE 0#include "pktdef.h"
Так описан контекст, определяющий получение сообщений об изменении горизонтальных координат пера, состояний кнопок и величине давления, создаваемого пером. Таких описаний может быть несколько, нужно лишь повторить вторую, третью и четвертую строки, заменив 0 на порядковый номер определения. Комбинируя различные константы в PACKETDATA, можно получить контексты с самыми разнообразными свойствами: контекст, контролирующий касательные давления, угол наклона пера и другие параметры во всех возможных комбинациях.
Описываем класс, где инкапсулированы функции работы с планшетом. Его интерфейс выглядит так:
class wacom_receiver{
public:
wacom_receiver(HWND window);
~wacom_receiver();
struct packet{
bool pushed;
int x;
int y;
};
packet get_packet(WPARAM wParam) const;
private:
HCTX hContext_; // Контекст устройства
HWND window_; // Дескриптор окна
LOGCONTEXT log_context_; //
};
Как и полагается, перед началом работы выполняем инициализацию, по завершении -- освобождаем занятые ресурсы. В конструкторе для этого выполняются два вызова функций API. Сначала получаем информацию об устройстве (WTInfo), а затем происходит регистрация контекста (WTOpen). Единственный параметр конструктора -- дескриптор окна, которое будет получать сообщения об изменении состояний пера и планшета. Деструктор делает единственный вызов, закрывающий контекст.
wacom_receiver::wacom_receiver(HWND window) : window_(window){
WTInfo(WTI_DEFCONTEXT, 0, &log_context_);
//Статическая информация.
log_context_.lcPktData = PACKETDATA;
log_context_.lcPktMode = PACKETMODE;
log_context_.lcOptions = CXO_MESSAGES;
hContext_ = WTOpen( window_, &log_context_, TRUE );// Контекст.
if(!hContext_)
throw bad_function_result("WTOpen");
}
wacom_receiver::~wacom_receiver(){
WTClose(hContext_);
}
Последним действием будет реализация функции, получающей информацию от планшета. При получении сообщения WT_PACKET функция окна, описанного дескриптором, переданным в конструктор wacom_receiver, должна вызвать wacom_receiver::get_packet и затем предпринять какие-то действия. Одному получению сообщения WT_PACKET должен соответствовать один вызов WTPacket, а значит, и один вызов wacom_receiver::get_packet. При получении пакета можно выяснить, касалось ли перо планшета при перемещении на планшет, или его просто переносили «по воздуху». Сделать это можно, проверив значение packet::pushed. Здесь стоит обратить внимание на аккуратную обработку возможных блокировок, чтобы не войти в обработчик сообщения WT_PACKET дважды, не завершив обработку первого ввода.
wacom_receiver::packet
wacom_receiver::get_packet(WPARAM wParam)
const{
PACKET pkt;
WTPacket( hContext_, wParam, &pkt );
packet pack;
pack.pushed = pkt.pkButtons != 0;
pack.x = pkt.pkX;
pack.y = pkt.pkY;
return pack;
}
Приведенный выше класс не имеет никаких функций для проверки активности программы и допустимости получения сообщений от планшета. Эти проблемы решают библиотеки Wintab API. Если программа теряет фокус ввода, то она автоматически перестает получать сообщения; при возвращении фокуса поток сообщений возобновится. Конечно же, можно изменить такой порядок вещей, но, как правило, это не требуется.
Подготовленный класс прост, но его уже достаточно для работы с планшетом. Фактически этот пример представляет собой несколько сокращенную версию модуля, используемого в пакете распознавания рукописного ввода PenReader для планшетов. Данный пример легко развить для применения в реальных задачах, например извлечения дополнительной информации, которая затем будет передаваться соответствующим модулям программы.
Подобные документы
Характеристика разновидностей устройств ввода информации: клавиатуры, сканера, графического планшета, средств речевого ввода, мыши, джойстика, светового пера. Исследование принципов ввода информации с бумажных носителей, разрешающей способности матрицы.
курсовая работа [78,7 K], добавлен 07.11.2011Назначение, классификация и экономическая целесообразность использования устройств ввода текстовой и графической информации. Обзор и сравнительный анализ программ распознавания образов Acrobat Reader и ASDee. Охрана труда при работе на компьютере.
дипломная работа [4,3 M], добавлен 23.07.2010Анализ особенностей работы специальных устройств для ввода информации в память компьютера. Клавиатура – устройство позволяющее вводить числовую и текстовую информацию. Виды манипуляторов: мышь, трекбол, джойстик. Устройства для ввода цифровой информации.
курсовая работа [668,5 K], добавлен 14.04.2013Изучение видов и функций периферийных устройств, с помощью которых компьютер обменивается информацией с внешним миром. Классификация устройств ввода-вывода информации. Приборы местоуказания (манипуляторы), сканеры, мониторы, принтеры, микрофоны, наушники.
контрольная работа [359,1 K], добавлен 10.03.2011Назначение и применение основных устройств ввода информации в компьютер. Клавиатура, манипулятор "мышь" и трэкбол, графические планшеты, сканеры, джойстик и трэкпойнт, микрофон и цифровые камеры, звуковая карта. Разновидности устройств ввода информации.
реферат [13,2 K], добавлен 27.03.2010Периферийные или внешние устройства ввода информации: клавиатура, манипуляторы, джойстик, трекбол. Сенсорные устройства ввода: сенсорный манипулятор, световое перо, графический планшет. Матричные, струйные, лазерные, термические и литерные принтеры.
реферат [280,7 K], добавлен 25.11.2010Изучение устройств ввода информации как приборов, осуществляющих перевод языка человека на машинный язык для занесения информации в компьютер. Функциональные возможности устройств ввода: клавиатура, мышь, джойстик, сканер, камера и графический планшет.
презентация [2,7 M], добавлен 02.05.2011Использование программой функции ввода-вывода данных для реализации дружественного интерфейса с пользователем. Функции консоли и особенности их применения для обеспечения аккуратного ввода информации и упорядоченного вывода. Обзор стандартных функций.
лабораторная работа [40,4 K], добавлен 06.07.2009Сканеры - устройства ввода текстовой или графической информации в компьютер путем преобразования ее в цифровой вид для последующего использования, обработки, хранения или вывода: основные виды, особенности конструкции, принцип работы, области применения.
реферат [1,0 M], добавлен 27.11.2010Разработка устройства ввода аналоговой информации (напряжения в диапазоне 0-100 мВ) в персональный компьютер через LPT-порт с предварительным ее сохранением в памяти устройства. Его структурная схема. Алгоритм работы программы чтения данных в ПК.
курсовая работа [1,9 M], добавлен 25.12.2012