|
3 / 3 / 0
Регистрация: 03.05.2010
Сообщений: 116
|
|
Аппаратно-программная реализация считывателей БСК MF-RW-USB (старых и новых годов выпуска)24.07.2012, 23:40. Показов 8580. Ответов 34
Метки нет (Все метки)
Всем доброе время суток!
Есть два считывателя БКС MF-RW-USB разных годов выпуска! Оба считывателя собраны на PIC с той лишь разницей, что старый имеет FTDI, а новый напрямую смотрит контроллером PIC18F4550 на USB и тут начинаются проблемы! Проблемы: 1. Тот, который с FTDI не может эмулировать нажатия клавиатуры (это стало ясно после общения со службой поддержки) 2.Тот, который с FTDI считанную информацию выкидывает в не читабельном формате (по мнению службя поддержки в BIN коде) 3. из-за не возможности подключения того, который с FTDI в качестве эмулятора клавиатуры, программа которая установленна сейчас его просто не видит, да и вся база с кодами карт записана в не читаемом формате. Собственно вопрос в следующем: 1. Как узнать в каком формате выли сделаны запись старым считывателем. 2. Есть ли возможность заставить новый стивыатель выкидывать информацию в формате старого считывателя? 3. Как можно реализовать возможность эмуляции клавиатуры старым считывателем без изменения кода отдачи. Если такая возможность есть то, на каком уровне это можно реализовать (изменение прошивки, доработка драйверов или еще как) Полный состав микросхем обоих считывателей выложе завтра Всем заранее огромное спасибо!
0
|
|
| 24.07.2012, 23:40 | |
|
Ответы с готовыми решениями:
34
Программная vs аппаратно-программная реализация функционала Аппаратная и программная реализация старых консолей? Вывести список самых новых и самых старых машин для каждой из стоянок,с указанием их владельцев и года выпуска |
|
3 / 3 / 0
Регистрация: 03.05.2010
Сообщений: 116
|
||||||
| 01.08.2012, 18:21 [ТС] | ||||||
|
Неа, не разобраться...
Address адрес считывателя (0..3F) Cmd команда BodyLen длина дополнительных данных для команды CmdBody буфер, содержащий дополнительные данные ReplyLen длина данных, полученных от считывателя ReplyBuffer буфер, в который будут помещены полученные данные. При вызове функции в ReplyLen должен быть записан размер области памяти, отведенной под Reply- Buffer. На выходе в ReplyLen будет записана длина фактически полученных данных. Возвращаемое значение – код возврата, см. раздел «Константы» REPLY_XXXXX. Получается: (мысли в слух )Ret:= W_IO(#$1, #$10, 0, '', RL, Event); // $10 - читать самое старое событие #$1, - Cmd команда #$10, - CmdBody буфер, содержащий дополнительные данные 0, - Так и не разобрался кто это '', - ReplyBuffer буфер, в который будут помещены полученные данные. RL, - ReplyLen длина данных, полученных от считывателя Event - некое событие, так понимаю берется из библиотеки Если все так, то где BodyLen: integer; - в каком направлении искать? Добавлено через 25 минут Хотя судя по примеру в доках, то запрос выглядит так Ret:= W_IO(#$3F, #$10, 0, '', RL, Event); // $10 - читать самое старое событие #$3F, - Адрес ридера #$10, - Cmd команда 0, - Так и не разобрался кто это '', - ReplyBuffer буфер, в который будут помещены полученные данные. RL, - ReplyLen длина данных, полученных от считывателя Event - некое событие, так понимаю берется из библиотеки Но даже тут нет BodyLen: integer; еще в доках есть Методы расчета контрольной суммы кадра:
Структура TProtocolInfo Структура используется для управления различными параметрами протокола обмена данными при работе с различными моделями устройств.
Следующие типы данных являются членами структуры TLogInfo и предназначены для хранения nullterminated строк, используемых для настройки внешнего вида протокола обмена данными. Типы данных
Скажите пожалуйста, где они используются и как ими перировать???
0
|
||||||
|
|
|||||||||
| 01.08.2012, 19:11 | |||||||||
0
|
|||||||||
|
3 / 3 / 0
Регистрация: 03.05.2010
Сообщений: 116
|
|||||||||||||||||||||||||||
| 01.08.2012, 20:48 [ТС] | |||||||||||||||||||||||||||
|
Так, если я все правильно понял, то сейчас обмен с ридером идет без подсчета контрольных сумм, а для того, чтобы все запросы были с контрольными суммами, необходимо включить эту возможность.
Как я понял, это делается через:
1. Описать структуру
Понял только, что в консантах необходимо прописать, что используем метод FCS CHECK_FCS 0х03 Если я правильно понимаю, то примерно должно быть так.
Запрос без W_SetProtocolParams - FD 3F 30 40 AF FE Запрос с W_SetProtocolParams - FD 31 40 39 E2 FE А это так, для аналитики дел Запрос без W_SetProtocolParams FD 3F 39 40 B8 FE FD 3F 3A 40 B9 FE FD 3F 3B 40 BA FE FD 3F 3C 40 BB FE Запрос с W_SetProtocolParams FD 3D 40 99 4B FE FD 3E 40 F1 61 FE FD 3F 40 29 78 FE FD 40 40 25 0B FE Но в любом ватианте 1 байта не хватает. Вот такие пироги....
0
|
|||||||||||||||||||||||||||
|
3 / 3 / 0
Регистрация: 03.05.2010
Сообщений: 116
|
||||||
| 07.08.2012, 05:07 [ТС] | ||||||
|
Значит так
Добавил
Теперь при нажатии на кнопку запросы отправляются верно, но Если запрос такой Ret:= W_IO(#$3F, #$03, 0,'', RL, Event); то все замечательно, а если запрос такой Ret:= W_IO(#$3F, #$00, 0,'', RL, Event); то при первом нажатии на кнопку запрос выполняется, а при повторном, программа вываливается в ошибку, я так понимаю. что это из-за того, что программа не приняла то, что было отправленно ридером при первом запросе. Собственно пока вопроса 2 1. Как принять данные с порта 2. Так и не разобрался что необходимо сделать для того, чтобы выполнить запрос сдополнительными параметрами. Запрос на чтение карты - 45 00 Сейчас можно выполнить запросы только 00 - Чтение параметров 03 - управление энергопотреблением 22 - Сброс накачки 23 - Выключение накачки 43 - Halt Все остальные состоят из 4 сиволов.
0
|
||||||
|
|
||||
| 07.08.2012, 09:19 | ||||
0
|
||||
|
3 / 3 / 0
Регистрация: 03.05.2010
Сообщений: 116
|
||
| 07.08.2012, 12:42 [ТС] | ||
|
а если отправить 45 00, то в ответ приходит - "00 - Команда выполнена успешно., 04 00 88 E5 E3 F0 0C" А по повду Comm32? я знаю, просто еще не совсем догнал как ей читать с порта, но сейчас разбераюсь!
0
|
||
|
|
|||||||
| 07.08.2012, 14:28 | |||||||
|
...запустите W_Term, выберите команду - 20 (считывание метки), отследите что она посылает сниффером и что приходит в ответ.
0
|
|||||||
|
3 / 3 / 0
Регистрация: 03.05.2010
Сообщений: 116
|
||
| 07.08.2012, 20:15 [ТС] | ||
|
Я так понимаю, что для использования Comm32 нужно отказаться от Prox232.dll.
Запрос:07.08.2012 20:12:30.30664 (+611.4844 seconds) FD B2 20 9B 27 FE Ответ:07.08.2012 20:12:30.30664 (+0.0000 seconds) FD B2 2A 02 67 04 FE При отправке 45 00 терминал возвразает "Ответ 00 - Команда выполнена успешно., Данные 04 00 88 E5 E3 F0 0C" Запрос:07.08.2012 20:13:31.96664 (+9.3438 seconds) FD B5 45 00 ED 4D FE Ответ:07.08.2012 20:13:31.96664 (+0.0000 seconds) FD B5 45 04 00 88 E5 E3 F0 0C 6A C8 FE
0
|
||
|
|
|||
| 07.08.2012, 21:17 | |||
0
|
|||
|
3 / 3 / 0
Регистрация: 03.05.2010
Сообщений: 116
|
|
| 07.08.2012, 22:04 [ТС] | |
|
Вот скрины Работа прогаммы в разных режимах
0
|
|
|
mrBotsman
|
|
| 27.09.2012, 13:49 | |
|
подскажите, пожалуйста, где можно взять все команды для работы считывателя с карточками mifare.
на сайте prox.ru в документации есть описание только базовых команд (очень неполный список) в службу техподдержки обратился, но пока ответа нет. пишу на VB6, общаться с MF-RW-USB получается через COM-порт. хотелось-бы узнать у Firmwares'a - получилось работать со считывателем? |
|
|
3 / 3 / 0
Регистрация: 03.05.2010
Сообщений: 116
|
||||||
| 07.10.2012, 06:42 [ТС] | ||||||
|
mrBotsman, Со считывателем с тех пор так и не занимался - был в отпуске, а потом разгребал завалы на работе.
Если еще нужна инфорация по считывателям, то пишите в личку и я отправлю Вам все, что у меня есть по этому поводу. Добавлено через 5 часов 50 минут Значит такое дело! Если запрос выполнить следующим образом, то он выполняется корректно и ридер скидывает данные.
Усли я правильно понял, то судя по мануалу ответ от ридера принимается примерно в таком же виде как и запрос, но мне его не сформировать. Следовательно вопрос: как получить ответ от ридера и вывести его в Memo.
0
|
||||||
|
3 / 3 / 0
Регистрация: 03.05.2010
Сообщений: 116
|
||||||
| 09.10.2012, 18:20 [ТС] | ||||||
|
Исправил зпрос на
При первом запросе В Edit1 вписывает "Команда выполнена успешно, получены данные", что и дожно быть в связи с тем, что запрос выполняется успешно. В Edit2 Вписывает 1. При второй попытке запроса происходит все тоже самое, но программа выдае ошибку. Как необходимо правильно составить запрос для того, чтобы Получить данные из ReplyBuffer и вписать в Edit2 в том виде, в котором они получены от считывателя?
0
|
||||||
|
3 / 3 / 0
Регистрация: 03.05.2010
Сообщений: 116
|
||||||
| 16.10.2012, 20:37 [ТС] | ||||||
|
Уважаемый raxp, скажите пожалуйста, что не так, вылетает "access violation at address" при работе прогаммы?
Вот весь код.
0
|
||||||
| 16.10.2012, 20:37 | |
|
Вывести список самых новых и самых старых машин для каждой из стоянок,с указанием их владельцев и года выпуска Получить сведения обо всех владельцах автомашин марки «мерседес», белого цвета, последних трех годов выпуска KERNELBASE.dll в старых играх играх 2013 годов и позднее Реализация деления аппаратно Склейка старых и новых адресов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Вангую, что это не пройдёт модерацию, и на неделе я запущу свой сервер.
Hrethgir 19.07.2026
Эта публикация сейчас в песочнице и ждёт приглашения.
https:/ / habr. com/ ru/ sandbox/ 295048/
начало и оглавление
-
Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование. . .
|
сукцессия 33. открытые вопросы от клауде
anaschu 19.07.2026
"Что накопилось за эту часть А — тринадцать правок, из которых шесть пришли из ваших вопросов и каждая оказалась реальной ошибкой, а не калибровкой: односторонний симбиоз, отсутствующий листопад,. . .
|
32 сукцессия
anaschu 19.07.2026
сукцессия 28‑мерное ядро стабилизировано
Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не «подкручивает» сходимость —. . .
|
сукцессия 31: модель микоризы - это модель ещё нескольких явлений, социальных и экономических
anaschu 18.07.2026
Теория «Всего»: апдейт v1. 1. 2 — 28‑мерное ядро стабилизировано
Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не. . .
|
|
сукцессия 30. Массив проверяющих друг друга моделей
anaschu 18.07.2026
Архитектура сети взаимопроверяющих моделей микоризной сукцессии (v2. 0)
Развитие тензорного ОДУ-ядра и создание кросс-платформенного калибровочного полигона
Уважаемые коллеги!
В продолжение. . .
|
Грибы - это женщины, деревья - это мужчины. Анти инь янь для союза мужчины и женщины.
anaschu 18.07.2026
ГЛАВНЫЙ НАУЧНО-ФИЛОСОФСКИЙ ВЫВОД: Сексуально-Репродуктивный Капитализм против Государства Моногамии
Коллеги, мы вышли на финишную прямую 20-мерного ОДУ-моделирования вековой сукцессии (ветка. . .
|
Текстовый слайдер с нумерацией страниц и кроссбраузерность.
russiannick 18.07.2026
Один мой друг написал текстовый слайдер с нумерацией страниц. Сегодня я расскажу как он умудрился подружить его с кроссбраузерностью.
Очевидно сложно угодить с шириной каждому браузеру. Один крадет. . .
|
Грибы - это мемы, дерево - это человек. Применение микоризной модели к теории меметики Докинза.
anaschu 18.07.2026
Меметический изоморфизм теории «всего»: Грибная сукцессия как модель эволюции идей Докинза
Базовый код системы ОДУ микоризной сукцессии описывает не просто биологию, а универсальную. . .
|