| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Микроконтроллеры (MCU) и микропроцессоры (MPU) > Данные из COM порта в буфер клавы |
| Автор: Cashey 21.9.2005, 21:50 |
| Очень нужен механиз пересылки текстовой информации, передоваемый через COM-порт, в буфер клавиатуры. т.е. что бы эти данные напрямую пересылались, например в текстовый редактор. Есть программа, которая это реализует, но мне хочется обойтись без внешних программ и встроить этот механизм в свою. Нужен пример хотя бы для одного порта, дальше сам разберусь. Спасибо. |
| Автор: Гость_ManiaK 21.9.2005, 22:39 |
| Cashey То есть, ты хотишь сделать своё устройство, которое будет вставляться в клавиатурный COM-порт?.. Шо-то не очень понял... |
| Автор: PILOT 21.9.2005, 22:56 |
| Финогенов К.Г. Ассемблер для IBM PC. В этой книге описан этот механизм от и до. или эту: http://www.ozon.ru/context/detail/id/1662732/ СУВ. ЗЫ. Суть в том что есть скэн коды которые и фиксируются в FIFO буфере клавиатуры, есть признаки нажатия и отпускания, т.е. можно узнать о переходах состояний клавиш. Как программно изменить значения в этом буфере я не знаю (не задавался вопросом), то что можно слать по PS\2 свою последовательность, это запросто. |
| Автор: Sardar 21.9.2005, 23:03 |
| Любой микроконтроллер с USB + U(S)ART(для COM'а), например PIC16C745. Подключаемся через USB1.1 к компу, прикидываемся клавой(любой HID девайс), зачитываем инфу с COM, толкаем обработанную инфу через USB Если от стандартов не отходить, то дров USB->(клава) под винду не нужно будет |
| Автор: bel_nikita 21.9.2005, 23:04 |
| ось какая? и зачем имитировать нажатие клавиш, если все равно выводишь на экран? Ну и втретьих, может тебе просто нужен протокол TelNET? |
| Автор: Cashey 21.9.2005, 23:25 |
| Нет, вы не поняли, мне не нужно имитировать нажатие клавиш. Просто есть такое устройство - сканер штрих-кодов. Они бывают комовские (не USB), а мне нужно с них считать данные в текстовом режиме. Как таковых драйверов к этим устройствам нет, но есть программы, которые переводят сигналы с COM-порта в буфер клавиатуры. Но пользоватся внешними программами не удобно, уверен, что загрузить такой "драйвер" в память при загрузки программы должно быть не сложно, но механизм как это реализовывается мне не известно, я никогда раньше не работал с портами на прямую PILOT, литература это гуд, но покупать дорогие и умные книжки для решкения каждой задачки - алгоритм не рациональный, да и ценность интернет-конфиренций в этом случае сводится на нет |
| Автор: Sardar 22.9.2005, 00:16 |
| Возьми любой микроконтроллер с USART + USB + I2C шиной или SPI интерфейсом. Возьми любую подходящую флеш память, подключи к микроконтроллеру по I2C/SPI. Зачитываешь с COM порта устройства инфу, пишешь в свою память. Втыкаешь свой девайс в USB на компе, выдаёшь стандартный интерфейс MASS_STORAGE, т.е. прикидываешся USB "флешкой". Никаких драйверов под комп не нужно, но потребует серьёзного программинга микроконтроллера. |
| Автор: bel_nikita 22.9.2005, 08:37 | ||||
Cashey
Никто ничего не переводит ни в какой буфер клавиатуры. Идет обычная работа с потром: чтение/записть, без всяких низкоуровневых драйверов. Есть стандарты на считывания штрих-кодов. Если к примеру первый считаный символ # - то это кодировка Code 128. В мануале к штрих-коду должно быть все это описано. Еще, раз спрашиваю З.Ы.: Пол-года назад написал DLL-ку для работы с COMовским штрих-сканером под Windows. Так что , если что - обращайся З.Ы.Ы: И причем здесь программирование контролеров? |
| Автор: Cashey 22.9.2005, 19:59 | ||
Структуру штрих-кодов я знаю, нужно именно переброска данных в буфер клавиатуры, пишу это в третий раз. Конкретная задача, что бы данные со сканера через COM порт попадали напрямую в текстовый редактов или в поле вода на форме, как будто бы набирался с клавиатуры. Если твоя dll'ка способна это сделать - буду очень благодарен за такой подарок. Ось - любая винда. Sardar USB тут вообще не причем и уж тем более нельзя использовать какие-либо внешние устройства. |
| Автор: Metal_Heart 23.9.2005, 12:40 |
| Cashey, так тебе нужна прога, которая из СОМ-порта принимает байтики? Ну, это просто можно сделать небольшую (даже маленькую) прогу, которая настроит СОМ-порт, и читая входящий поток запишет его либо в текстовый файл, либо на экран своей программы, либо ещё куда-нибудь Настройка СОМ-порта (если знаком с С++): http://www.realcoding.net/article/view/2416 как вариант, конечно П.С. Об этом лучше спрашивать у Сишников, Дельфистов и т.п. |
| Автор: bel_nikita 23.9.2005, 20:34 |
| Вот, приклепленный zip. Запусти exe. Зайди в Конфигурация/Конфигурация сканера. Выставь нужный com порт. Потом Вид/Сканер штрих-кода. Должно появиться окошко. Берешь сканер, пачку сигарет и считываешь с нее штрих-код З.Ы.: если все пройдет, то будем дальше говорить о dll'ке |
| Автор: Cashey 23.9.2005, 21:46 |
| bel_nikita спасибо, в понедельник посмотрю |
| Автор: asa 12.10.2005, 14:30 |
| У меня стоит XP, прога не запускается. Выдает окошко с заголовком TestTerminal и текстом Sorry, trial-time is finished. Как же ее запустить, подскажи пожалуйста. Сейчас я думаю над подобной проблемой: Есть устройство, которое посылает данные на КОМ-порт в режиме непрерывной передачи. Нужно написать прогу, которая считывала бы эти данные, обрабатывала и передавала их базу данных SQL. Буду признателен всем, кто помог бы с решением этой задачи. Заранее спасибо. |
| Автор: bel_nikita 12.10.2005, 16:42 | ||
asa
Добавлено @ 16:43 можно поменять дату в системе или скажи - выложу версию |