0 / 0 / 1
Регистрация: 10.06.2014
Сообщений: 59
|
||||||
1 | ||||||
Не могу достучаться до считывателя24.03.2017, 10:13. Показов 1650. Ответов 9
Метки нет (Все метки)
Купил считыватель, нужно его запрограммировать, никогда этого не делал и толком не знаю с чего начать, но кое что нашел в нете. Считыватель UART подключается при помощи usb. В диспетчере устройств его видно подключен как COM4.
0
|
24.03.2017, 10:13 | |
Ответы с готовыми решениями:
9
Ошибка в TextBox, не могу достучаться до Bookmark в Word Не могу достучаться по SSH Не могу достучаться в сеть за микротиком Не могу достучаться до Oracle'a из Delphi |
0 / 0 / 0
Регистрация: 24.03.2017
Сообщений: 2
|
|
24.03.2017, 11:54 | 2 |
Что за считыватель? Какая марка, модель. Их очень много всяких разных. Лучше сфоткай и покажи что за "зверь".
0
|
0 / 0 / 1
Регистрация: 10.06.2014
Сообщений: 59
|
|
24.03.2017, 13:24 [ТС] | 3 |
Код выполняется на моем компьютере, устройство подключено к usb порту. Использую считыватель BRAVO
Протокол Кликните здесь для просмотра всего текста
6. Протокол обмена
Обмен между считывателем и компьютером осуществляется с помощью пере-дачи специальных команд и приема ответов. Считыватель поддерживает два режима чтения карт (режимы программируются командой 0xC1, описание которой приведено ниже): – выдача кода карты по запросу; – выдача кода карты по факту поднесения карты. Если установлен режим работы 0, то для считывания карты могут использовать-ся команды 0xC3, 0xC4 и 0xCE. Если установлен режим работы 1, то идентификатор карты выдается при ее поднесении в формате ответа на команду 0xC3. Переключение между режимами осуществляется посредством команд. Опи-сание всего набора команд и их формата приведено ниже. Скорость передачи по RS-232 программируется и может принимать значения 1200, 2400, 4800, 9600, 19200, 38400, 115200 бит/с. По умолчанию установлена ско-рость 9600 бит/с. Формат слова: 1 старт-бит, 8 бит, контроль по четности,1стоп-бит. Формат команды представлен в таблице 3. Таблица 3 – Формат команды № п/п Значение Описание 1 0x10 маркер начала сообщения 2 0xXX адрес устройства 3 0xXX код команды 4 0xXX длина параметров команды 5 [0xXX, … 0xXX] параметры команды 6 0x11 маркер конца сообщения 7 0xXX контрольная сумма сообщения Формат ответа приведен в таблице 4. Таблица 4 – Формат ответа № п/п Значение Описание 1 0x10 маркер начала сообщения 2 0xXX адрес устройства 3 0xXX код команды 4 0xXX длина результата выполнения команды 5 [0xXX, … 0xXX] код ошибки + результат выполнения команды (для команд, которые возвращают значение) 6 0x11 маркер конца сообщения 7 0xXX контрольная сумма сообщения Контрольная сумма рассчитывается как арифметическая сумма байт от маркера начала до маркера конца включительно. В случае возникновения ошибок для любых команд ответ выглядит, как показано в таблице 5. Таблица 5 – Формат ошибки № п/п Значение Описание 1 0x10 маркер начала сообщения 2 0xXX адрес устройства 3 0xXX код команды, в результате получения кото-рой возникла ошибка 4 0x01 длина ошибки 5 1, 21, 22 код ошибки 6 0x11 маркер конца сообщения 7 0xXX контрольная сумма сообщения Могут возникать следующие ошибки (в десятичном формате): 01 – неправильный код команды, неправильная длина параметров, 21 – ошибка контрольной суммы, 22 – ошибка данных (неправильный параметр, например месяц = 13). Используются следующие команды: 0xC0 – Прочитать/записать идентификатор устройства Вид запроса команды приведен в таблице 6. Если в запросе длина параметров равна 0, то производится чтение идентификатора считывателя. Вид ответа приведен в таблице 7. Если длина параметров отличная от приведенной, то выдается ошибка с кодом 1. В случае возникновения ошибки, генерируется ошибка, приведенная в табли-це 8. Будут записаны все параметры, которые соответствуют длине параметров (на-пример, при длине параметров = 3, будут записаны тип устройства и версия прошив-ки). Таблица 6 – Запрос команды 0xC0 № п/п Значение Описание 1 0x10 маркер начала сообщения 2 0xXX адрес устройства 3 0xC0 код команды 4 0, 1, 3, 6, 12, 14 длина параметров 5 0xXX тип устройства (описание приведено ниже) 6 0xXXXX версия прошивки (2 байта, начиная со старшего) 7 0-99 дата выпуска прошивки (год) 8 1-12 дата выпуска прошивки (месяц) 9 1-31 дата выпуска прошивки (день) 10 0xXXXXXXXXXXXX Серийный номер устройства (6 байт, начи-ная со старшего) 11 0xXXXX Дополнительная информация (2 байта, на-чиная со старшего) 13 0x11 маркер конца сообщения 14 0xXX контрольная сумма сообщения Таблица 7 – Ответ на команду 0xC0 № п/п Значение Описание 1 0x10 маркер начала сообщения 2 0xXX адрес устройства 3 0xC0 код команды 4 15 длина параметров 5 0 код ошибки (0 – ошибки нет) 6 0x00, 0x06 тип устройства (описание приведено ниже) 7 0xXXXX версия прошивки (2 байта, начиная со старшего) 8 0-99 дата выпуска прошивки (год) 9 1-12 дата выпуска прошивки (месяц) 10 1-31 дата выпуска прошивки (день) 11 0xXXXXXXXXXXXX Серийный номер устройства (6 байт, начи-ная со старшего) 12 0xXXXX Дополнительная информация (2 байта, на-чиная со старшего) 13 0x11 маркер конца сообщения 14 0xXX контрольная сумма сообщения Таблица 8 – Формат ошибки команды 0xC0 № п/п Значение Описание 1 0x10 маркер начала сообщения 2 0xXX адрес устройства 3 0xС0 код команды, в результате получения кото-рой возникла ошибка 4 0x01 длина ошибки 5 4 код ошибки (ошибка записи в EEPROM) 6 0x11 маркер конца сообщения 7 0xXX контрольная сумма сообщения 0xC1 – Прочитать/записать параметры устройства Вид запроса команды приведен в таблице 9. Если в запросе длина параметров равна 0, то производится чтение параметров считывателя. Вид ответа приведен в таб-лице 10. Если длина параметров больше 6, то выдается ошибка с кодом 1. В случае возникновения ошибки, генерируется ошибка, приведенная в таблице 11. Будут запи-саны все параметры, которые соответствую длине параметров (например, при длине параметров = 3, будут записаны тип устройства, его адрес и скорость обмена). Таблица 9 – Запрос команды 0xC1 № п/п Значение Описание 1 0x10 маркер начала сообщения 2 0xXX адрес устройства 3 0xC1 код команды 4 0-6 длина параметров 6 0xXX тип устройства (описание приведено ниже) 7 0xXX адрес устройства 8 0 – 7 скорость обмена (описание приведено ниже, по умолчанию 3 = 9600бит/с) 9 0xXX период чтения карты (время хранения карты после ее прочтения, 1=100мс, по умолчанию 10 = 1с) 10 0, 1 режим работы устройства (0 – выдача кода карты по запросу, 1 – выдача кода карты по факту подне-сения карты) 11 0x11 маркер конца сообщения 12 0xXX контрольная сумма сообщения Таблица 10 – Ответ на команду 0xC1 № п/п Значение Описание 1 0x10 маркер начала сообщения 2 0xXX адрес устройства 3 0xC0 код команды 4 6 длина параметров 5 0 код ошибки (0 – ошибки нет) 6 0xXX тип устройства (описание приведено ниже) 7 0xXX адрес устройства 8 0 – 7 скорость обмена (по умолчанию 3 = 9600бит/с) 9 0xXX период чтения карты (время хранения карты после ее прочтения, 1=100мс, по умолчанию 10 = 1с) 10 0, 1 режим работы устройства 11 0x11 маркер конца сообщения 12 0xXX контрольная сумма сообщения Таблица 11 – Формат ошибки команды 0xC1 № п/п Значение Описание 1 0x10 маркер начала сообщения 2 0xXX адрес устройства 3 0xС1 код команды, в результате получения кото-рой возникла ошибка 4 0x01 длина ошибки 5 4 код ошибки (ошибка записи в EEPROM) 6 0x11 маркер конца сообщения 7 0xXX контрольная сумма сообщения При перезаписи адреса необходимо учитывать, что ответ будет с новым адре-сом. Скорость изменится после выключения/включения питания. Используются следующие параметры для записи скорости обмена: 0 - 1200 бит/с; 1 - 2400 бит/с; 2 - 4800 бит/с; 3 - 9600 бит/с; 4 - 19200 бит/с; 5 - 38400 бит/с; 6 - 57600 бит/с; 7 - 115200 бит/с. Для определения типа устройства используются параметры приведенные ниже: 0 – Тип не определен; 6 – Контрольный считыватель СBK-01 с интерфейсом RS232, предназначенный для считывания карт совместимых с Em-Marin H4001 (125кГц); 7 – Контрольный считыватель СBK-01TM с интерфейсом RS232, предназначен-ный для считывания ключей Touch Memory; 8 - контрольный считыватель c интерфейсом USB, предназначенный для считы-вания карт совместимых с Em-Marin H4001 (125кГц); 9 - контрольный считыватель c интерфейсом USB, предназначенный для считы-вания ключей Touch Memory; 0xC2 – Прочитать параметры устройства Команда используется только для чтения параметров. Формат команды пред-ставлен в таблице 3. Длина параметров в запросе всегда равна 0 (параметры не пере-даются). Формат ответа аналогичен формату команды 0xC2, приведенному в таблице 12. Единственное отличие: код команды = 0xC2. 0xC3 – Прочитать состояние устройства Команда используется для чтения состояния устройства. Формат команды пред-ставлен в таблице 3. Длина параметров в запросе всегда равна 0 (параметры не пере-даются). Если есть прочитанная карты, то вид ответа показан в таблице 12, если нет, то в таблице 13. Во избежание потери идентификатора прочитанной карты, учитывать, что период опроса считывателя, должен быть меньше, чем период чтения карты. Таблица 12 – Ответ 1 на команду 0xC3 № п/п Значение Описание 1 0x10 маркер начала сообщения 2 0xXX адрес устройства 3 0xC3 код команды 4 8 длина параметров 5 0 код ошибки (0 – ошибки нет) 6 0x80 состояние устройства (0x80 – прочитана карта) 7 0xID0…0xID5 идентификатор карты (5 байт, начиная с младшего) 8 0x00 старший байт идентификатора (равен 0x00 для со-вместимости с ключами Touch Memory) 9 0x11 маркер конца сообщения 10 0xXX контрольная сумма сообщения Таблица 13 – Ответ 2 на команду 0xC3 № п/п Значение Описание 1 0x10 маркер начала сообщения 2 0xXX адрес устройства 3 0xC3 код команды 4 2 длина параметров 5 0 код ошибки (0 – ошибки нет) 6 0x00 состояние устройства (0x00 – нет прочитаной карты) 7 0x11 маркер конца сообщения 8 0xXX контрольная сумма сообщения 0xC4, 0xCE – Прочитать состояние устройства Команда используется для чтения карты из памяти считывателя. Формат коман-ды представлен в таблице 3. Длина параметров в запросе всегда равна 0 (параметры не передаются). Если есть прочитанная карта, то вид ответа показан в таблице 14, ес-ли нет, то в таблице 15. Таблица 14 – Ответ на команду 0xC4, 0xCE № п/п Значение Описание 1 0x10 маркер начала сообщения 2 0xXX адрес устройства 3 0xС4, 0xСE код команды 4 7 длина параметров 5 0 код ошибки (0 – ошибки нет) 6 0xID0…0xID5 идентификатор карты (5 байт, начиная с младшего) 7 0x00 старший байт идентификатора (равен 0x00 для со-вместимости с ключами Touch Memory) 8 0x11 маркер конца сообщения 9 0xXX контрольная сумма сообщения Таблица 15 – Формат ошибки команды 0xC4, 0xCE № п/п Значение Описание 1 0x10 маркер начала сообщения 2 0xXX адрес устройства 3 0xС4, 0xСE код команды 4 0x01 длина ошибки 5 20 код ошибки (нет прочитанной карты) 6 0x11 маркер конца сообщения 7 0xXX контрольная сумма сообщения Я так понял что адрес устройства можно определить в диспетчере устройств. Выбираем порт в диспетчере устройств, потом сведения и выбираем адресс. Добавлено через 2 минуты Мой адресс устройства 00000002
0
|
0 / 0 / 1
Регистрация: 10.06.2014
Сообщений: 59
|
||||||
24.03.2017, 13:50 [ТС] | 5 | |||||
Хорошо, вот еще один пример работы с данным считывателем. Данные я здесь тоже не принимаю.
0
|
0 / 0 / 1
Регистрация: 10.06.2014
Сообщений: 59
|
||||||
28.03.2017, 16:34 [ТС] | 7 | |||||
Достучался к usb и приходят данные:
0
|
0 / 0 / 1
Регистрация: 10.06.2014
Сообщений: 59
|
|
29.03.2017, 14:12 [ТС] | 8 |
Возможно что под windows7 x64 где-то стоит запрет на прием и передачу?
Добавлено через 23 секунды Дело в том что это устройство я открыть могу и даже послать данные, но получить не получается. Такая же ситуация с программой Terminal. Там я устанавливаю настройки, открываю порт, вижу что данные передаются(в строке состояния написано порт открыт, Тх постоянно меняется, но Rx постоянно ноль). Такая же ситуация если установить DTR, RTS.
0
|
0 / 0 / 0
Регистрация: 24.03.2017
Сообщений: 2
|
|
29.03.2017, 14:39 | 9 |
dodik78781, Переустанови винду, может поможет.
0
|
0 / 0 / 1
Регистрация: 10.06.2014
Сообщений: 59
|
|
28.04.2017, 10:11 [ТС] | 10 |
Продал считыватель, уже не нужно. Всем спасибо.
0
|
28.04.2017, 10:11 | |
28.04.2017, 10:11 | |
Помогаю со студенческими работами здесь
10
Не могу достучаться до MPU-6000 Не могу достучаться до свойств объекта Не могу достучаться к элементам класса Variant Не могу достучаться до RadioButton в Navigation Drawer item? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи | |||||
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства
Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
|
Что такое NullReferenceException и как исправить?
InfoMaster 08.01.2025
NullReferenceException - одно из самых распространенных исключений, с которым сталкиваются разработчики на C#. Это исключение возникает при попытке обратиться к членам объекта (методам, свойствам или. . .
|
Что такое Null Pointer Exception (NPE) и как это исправить?
InfoMaster 08.01.2025
Null Pointer Exception (NPE) - это одно из самых распространенных исключений в Java, которое возникает при попытке использовать ссылку на объект, значение которой равно null. Это исключение относится. . .
|
Русский язык в консоли C++
InfoMaster 08.01.2025
При разработке программ на C++ одной из частых проблем, с которой сталкиваются русскоязычные программисты, является корректное отображение кириллицы в консольных приложениях. Эта проблема особенно. . .
|
Telegram бот на C#
InfoMaster 08.01.2025
Разработка ботов для Telegram стала неотъемлемой частью современной экосистемы мессенджеров. C# предоставляет мощный и удобный инструментарий для создания разнообразных ботов, от простых. . .
|
Использование GraphQL в Go (Golang)
InfoMaster 08.01.2025
Go (Golang) является одним из наиболее популярных языков программирования, используемых для создания высокопроизводительных серверных приложений. Его архитектурные особенности и встроенные. . .
|
Что лучше использовать при создании класса в Java: сеттеры или конструктор?
Alexander-7 08.01.2025
Вопрос подробнее:
На вопрос: «Когда одновременно создаются конструктор и сеттеры в классе – это нормально?» куратор уточнил: «Ваш класс может вообще не иметь сеттеров, а только конструктор и геттеры. . .
|
Как работать с GraphQL на TypeScript
InfoMaster 08.01.2025
Введение в GraphQL и TypeScript
В современной разработке веб-приложений GraphQL стал мощным инструментом для создания гибких и эффективных API. В сочетании с TypeScript, эта технология. . .
|
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
|
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален
В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
|
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
|
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели
В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
|