Форум программистов, компьютерный форум, киберфорум
КИП, датчики
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.82/245: Рейтинг темы: голосов - 245, средняя оценка - 4.82
4 / 4 / 0
Регистрация: 12.05.2011
Сообщений: 87
1

Получение данных с ридера карт PERCo-IR05

25.01.2013, 13:01. Показов 46711. Ответов 61
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Приветствую!
Есть USB считыватель карт, который подключался к контроллеру. Появилась необходимость подключения Считывателя на прямую к ПК без использования контроллера. Соответственно нужно получать передаваемые им данные...
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        SerialPort mySerialPort = new SerialPort("COM7");
        string s;
 
 
        private void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)
        {
            SerialPort sp = (SerialPort)sender;
            string indata = sp.ReadExisting();
           this.Invoke((MethodInvoker)delegate
           {
                textEdit1.Text = indata;
                //textBox1.Text = newText; // код который выполнится в UI потоке
            });
        }
 
 
        private void simpleButton1_Click(object sender, EventArgs e)
        {
            mySerialPort.BaudRate = 9600;
            mySerialPort.Parity = Parity.None;
            mySerialPort.StopBits = StopBits.One;
            mySerialPort.DataBits = 8;
            mySerialPort.Handshake = Handshake.None;
 
            mySerialPort.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);
            mySerialPort.Open();
        }
 
        private void simpleButton2_Click(object sender, EventArgs e)
        {
            mySerialPort.Close();
        }
 
 
    }
Данная схема не помогает
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.01.2013, 13:01
Ответы с готовыми решениями:

Работа с считывателем PERCo-IR05 - Выполнить считывание карты через ReadLine
Здравствуйте, не удаётся выполнить считывание карты через ReadLine(), плюс временами не работает...

Перехват данных карт ридера ?
Здравствуйте. Есть картридер, в нее вставляется карта, есть расширение в IE. API нет. На...

Передача данных с ридера магнитных карт в интернет
Доброго времени суток! Собственно назрел такой вопрос - не могу понять с какой стороны к нему...

Передача данных с ридера магнитных карт в интернет
Доброго времени суток! Собственно назрел такой вопрос - не могу понять с какой стороны к нему...

Настройка ридера магнитных карт
Всем привет. Народ, столкнулся со следующей проблемой. Подключил и настроил ридер магнитных карт, к...

61
0 / 0 / 0
Регистрация: 23.05.2012
Сообщений: 7
15.11.2013, 16:34 41
Author24 — интернет-сервис помощи студентам
Доброго времени суток. Приобрели такой же считыватель Perco IR05. Глобальная задача получить код карты.) Может кто поделиться исходниками? И есть ли у кого описание работы данного считывателя (т.е. непонятно что означает красный индикатор и при каких условиях он станет зеленым или наоборот, что означает звуковой сигнал)?
0
10231 / 6609 / 498
Регистрация: 28.12.2010
Сообщений: 21,156
Записей в блоге: 1
15.11.2013, 16:39 42
А вы только название темы смогли прочитать, да? Три листа обсуждений, реверсинга, ссылок на документацию и с готовыми исходниками.
0
0 / 0 / 0
Регистрация: 23.05.2012
Сообщений: 7
15.11.2013, 16:48 43
Коды имеются, за что большое спасибо. Хотелось бы еще с индикатором и звуковым сигналами разобраться.

Добавлено через 2 минуты
Цитата Сообщение от raxp Посмотреть сообщение
Cмотрели гипертерминалом?
Есть ли ответ на этот вопрос? что должен показывать гипертерминал?
0
10231 / 6609 / 498
Регистрация: 28.12.2010
Сообщений: 21,156
Записей в блоге: 1
15.11.2013, 16:59 44
Читаем документацию. Документация на сайте производителя.
0
0 / 0 / 0
Регистрация: 23.05.2012
Сообщений: 7
18.11.2013, 10:39 45
Цитата Сообщение от oit171 Посмотреть сообщение
окромя паспорта, сертификата и драйвера на эту модель там ничего более не встречал. Есть ссылка на даташит?
Кто-нибудь нашел даташит?
0
10231 / 6609 / 498
Регистрация: 28.12.2010
Сообщений: 21,156
Записей в блоге: 1
18.11.2013, 12:18 46
Пост #16.
0
0 / 0 / 0
Регистрация: 23.05.2012
Сообщений: 7
18.11.2013, 12:43 47
Спасибо!
0
0 / 0 / 0
Регистрация: 28.07.2009
Сообщений: 17
08.04.2015, 21:44 48
Не убивайте
Подскажите пожалуйста, как и в чем компилировать вот это #35
Мне показалось что это VS, но чота-както не сложилось пока
0
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
08.04.2015, 23:03 49
СИ шарп (С#) это. Компилировать в студии.
0
0 / 0 / 0
Регистрация: 28.07.2009
Сообщений: 17
09.04.2015, 22:11 50
Про компиляцию подскажите, плиз
Кликните здесь для просмотра всего текста

Загвоздка в том, что я не программист и код, который хотел скомпилировать - нужен только для образца, но в рабочем виде.
Я попробовал создать в VS2010 проект и добавить туда код - вылезло много ошибок. Почитав-погуглив, добавил нужные using, как сказал MSDN
Код
using System.IO.Ports;
using System;
using System.Windows.Forms;
using System.Threading;
И в целом ошибки ушли. Осталась одна такая:
error CS0246: The type or namespace name 'MainInit' could not be found (are you missing a using directive or an assembly reference?)
И её никак не удается победить. Очень прошу, подскажите пожалуйста как решить её.
0
0 / 0 / 0
Регистрация: 23.10.2014
Сообщений: 9
14.05.2015, 12:10 51
lexmove,
Подскажите пожалуйста, какой вы использовали сниффер?
0
10231 / 6609 / 498
Регистрация: 28.12.2010
Сообщений: 21,156
Записей в блоге: 1
14.05.2015, 13:00 52
...не ли все равно какой, когда в теме приложено полное описание протокола? Portmon пробуйте для ОС не выше семерки.
0
0 / 0 / 0
Регистрация: 23.10.2014
Сообщений: 9
19.05.2015, 14:07 53
Объясни пожалуйста - получил данные с CR
242, 255, 8, 240, 128, 0, 26, 237, 176, 209, 0, 238
K=8
State=128, при том что допустимое значение от 1 до 7
Код карты=0-209-176-237. это верно? просто это значение не совпадает к кодом который нанесен на саму карту
СRC=238 (изменяется от карты к карте)
Я правильно рассуждаю?
0
10231 / 6609 / 498
Регистрация: 28.12.2010
Сообщений: 21,156
Записей в блоге: 1
19.05.2015, 14:10 54
Кадр "Понял" (CR -> PC)
Байт Значение
3 K (переменная длина)
4 F0
5 State ( текущее состояние контроллера )
6 Тип считывателя
7 Длина кода (бит)
8 - K+3 В случае, если карта предъявлена, следует полученный от Reader'a код.
K+4 Контрольная сумма
K- некая длина сообщения в байтах, K+3 - позиция байта с которого идет код ридера, поскольку он отстоит на три байта + K вперед. Русским по белому написано.
1
0 / 0 / 0
Регистрация: 23.10.2014
Сообщений: 9
19.05.2015, 14:15 55
я извиняюсь, за путаницу, но обратно отредактировать своё сообщение не смогу
0
10231 / 6609 / 498
Регистрация: 28.12.2010
Сообщений: 21,156
Записей в блоге: 1
19.05.2015, 14:16 56
не совпадает к кодом который нанесен на саму карту
что нанесено на карту?
0
0 / 0 / 0
Регистрация: 23.10.2014
Сообщений: 9
19.05.2015, 14:46 57
На карте 0006871158 104,55414
Из доки
Код карты содержит принятый CR полный код карты. Код карты располагается в данных последовательно по принципу : первый принятый бит – в младший бит первого байта данных и т.п

В моё случае - 237(ED), 176(B0), 209(D1), 0
Первый байт данных=DE,второй=OB,третий=1D,четвертый=0
DEOB1D0 =232829392
Совсем не совпадает с кодом карты
п.с Про state, я разобрался
0
10231 / 6609 / 498
Регистрация: 28.12.2010
Сообщений: 21,156
Записей в блоге: 1
19.05.2015, 15:39 58
...полубайты местами менять вы не имеете права, это не одно и то же с записью байта в битовом представлении младшими битами вперед.

Постами ранее уже давал расшифровку, но мне не нравится 128 в вашей последовательности, ни к селу, ни к городу "242, 255, 8, 240, 128, 0, 26, 237, 176, 209, 0, 238"

242 - F2
255 - FF
8 - K
240 - F0 (State - состояние считывателя)
128 - Тип считывателя 00 или 01
0 - Длина кода=один байт
26 237 176 209 0 - CR, n-байт кода предъявленной карточки
238 - один байт=СRC всех байт пакета-1 по исключающему ИЛИ, начиная с 3-го байта

Надпись на карте тоже с запятой, с чего бы.
2
0 / 0 / 0
Регистрация: 23.10.2014
Сообщений: 9
19.05.2015, 22:07 59
Вот из доки цитата
Кадр "Понял" (CR -> PC)
Байт Значение
3 K (переменная длина)
4 F0
5 State ( текущее состояние контроллера )
6 Тип считывателя
7 Длина кода (бит)
8 – K+3 В случае, если карта предъявлена, следует полученный от Reader’a код.
K+4 Контрольная сумма
Цитата Сообщение от raxp Посмотреть сообщение
128 - Тип считывателя 00 или 01
State это 5 байт. 128 это State 1000000 (7-ой бит равен единице, то есть ридер прочитал номер карты), тут слава богу все в порядке

Вообще, то что получаю на выходе ридера, должно совпадать с номер написанным на карте, в моё случае 55414? Ну не могу я понять, как вот из этого 237 176 209 0
спарсить вот это 55414, я уже кажется все перебрал, но ничего не получается
0
10231 / 6609 / 498
Регистрация: 28.12.2010
Сообщений: 21,156
Записей в блоге: 1
20.05.2015, 06:44 60
...то что побитно все хорошо - не значит, что длина кода может быть равна нулю, а она у вас равна нулю. Во-вторых - вы 26 удобно потеряли. А вот то, что написано на карте еще под вопросом.

Лучше приложите полный дамп обмена ридера при поднесении карты со стандартным ПО, так увидим реальную картинку происходящего. Используйте портмон в режиме HEX визуализации. Дамп приложить на форум в текстовом файле, никаких удалений из него не делать.
0
20.05.2015, 06:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.05.2015, 06:44
Помогаю со студенческими работами здесь

Работа с командами APDU. Получение данных со смарт карт
Здравствуйте, необходима информация по работе с APDU командами, а именно какие команды нужно...

Триггер на изменение версии базы данных Perco
Доброго дня. Имеем перко (турникеты) на firebase. чуть допилена - добавлено одно поле (для связи...

Добавление данных из ридера в массив
В ридер загрузил один столбец заполненный цифрами. Как теперь перенести его в массив?

Не выполняется метод для вывода данных из бд с использованием ридера
Нужно из бд вывести значение одной ячейки в Label, не мог понять причину, а потом мне подсказали,...

Сколькими способами можно из колоды игральных карт (36 карт) раздать двум игрокам по шесть карт?
Задача на комбинаторику с подвохом Сколькими способами можно из колоды игральных карт (36...

Колода карт из 36 карт, сколькими способами можно достать 5 карт?
Колода карт из 36 карт. Сколькими способами можно достать 5 карт так, чтобы среди них были пиковые...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru