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

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

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

Приветствую!
Есть 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
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.01.2013, 13:01
Ответы с готовыми решениями:

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

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

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

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

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

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

Добавлено через 2 минуты
Цитата Сообщение от raxp Посмотреть сообщение
Cмотрели гипертерминалом?
Есть ли ответ на этот вопрос? что должен показывать гипертерминал?
0
raxp
10198 / 6580 / 493
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
15.11.2013, 16:59 44
Читаем документацию. Документация на сайте производителя.
0
15.11.2013, 16:59
Timka
0 / 0 / 0
Регистрация: 23.05.2012
Сообщений: 7
18.11.2013, 10:39 45
Цитата Сообщение от oit171 Посмотреть сообщение
окромя паспорта, сертификата и драйвера на эту модель там ничего более не встречал. Есть ссылка на даташит?
Кто-нибудь нашел даташит?
0
raxp
10198 / 6580 / 493
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
18.11.2013, 12:18 46
Пост #16.
0
Timka
0 / 0 / 0
Регистрация: 23.05.2012
Сообщений: 7
18.11.2013, 12:43 47
Спасибо!
0
xopkep
0 / 0 / 0
Регистрация: 28.07.2009
Сообщений: 17
08.04.2015, 21:44 48
Не убивайте
Подскажите пожалуйста, как и в чем компилировать вот это #35
Мне показалось что это VS, но чота-както не сложилось пока
0
Витальич
1277 / 1183 / 175
Регистрация: 02.12.2013
Сообщений: 4,886
08.04.2015, 23:03 49
СИ шарп (С#) это. Компилировать в студии.
0
xopkep
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
physicshizik
0 / 0 / 0
Регистрация: 23.10.2014
Сообщений: 9
14.05.2015, 12:10 51
lexmove,
Подскажите пожалуйста, какой вы использовали сниффер?
0
raxp
10198 / 6580 / 493
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
14.05.2015, 13:00 52
...не ли все равно какой, когда в теме приложено полное описание протокола? Portmon пробуйте для ОС не выше семерки.
0
physicshizik
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
raxp
10198 / 6580 / 493
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 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
physicshizik
0 / 0 / 0
Регистрация: 23.10.2014
Сообщений: 9
19.05.2015, 14:15 55
я извиняюсь, за путаницу, но обратно отредактировать своё сообщение не смогу
0
raxp
10198 / 6580 / 493
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
19.05.2015, 14:16 56
не совпадает к кодом который нанесен на саму карту
что нанесено на карту?
0
physicshizik
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
raxp
10198 / 6580 / 493
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 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
physicshizik
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
raxp
10198 / 6580 / 493
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
20.05.2015, 06:44 60
...то что побитно все хорошо - не значит, что длина кода может быть равна нулю, а она у вас равна нулю. Во-вторых - вы 26 удобно потеряли. А вот то, что написано на карте еще под вопросом.

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.