PDA

Просмотр полной версии : UNM библ. помощь



Сергей Борисович
09.08.2013, 15:56
Начал работать с библиотекой UNM.
С захватом интерфейса разобрался, всё работает, захватывает и освобождает.
Но вот вопрос, подключаю картридер, а там "Командами на считывание карточки являются ASCII символы ‘N’(4Eh)".
Что я должен прописать на входах Line и Len модуля SetByte, т.е. массив и длина массива.
Раньше с этим дел не имел, и из кубиков собирал домики, а теперь надо собирать кубики.
Крышу рвёт, помогите!

capzap
10.08.2013, 07:30
судя по Вашему описанию, надо подать строку из одного символа, а в len указать либо прямо единицу, либо sizeof строки

Сергей Борисович
13.08.2013, 16:15
Прописал в строке ‘N’ и в len -1
Выдаёт отправлен 1 байт, но ответа от картридера нет.
Кто-то сталкивался с карточкими Mifare,
может кто что скажет?

capzap
13.08.2013, 16:36
у меня нет такого ридера, но судя по даташиту http://www.mifare.net/files/3012/8379/9513/MIFARE_Ultralight_datasheet.pdf, у Вас не правильная информация о работе с ним, с 14 страницы 8.6 Command set

Сергей Борисович
13.08.2013, 18:32
Спасибо за ссылку, что-то подобное искал на русс.
Буду изучать.

Сергей Борисович
14.08.2013, 17:37
у меня нет такого ридера, но судя по даташиту http://www.mifare.net/files/3012/8379/9513/MIFARE_Ultralight_datasheet.pdf, у Вас не правильная информация о работе с ним, с 14 страницы 8.6 Command set

Всё правильно, подаётся команда картридеру. а даташит на карту.
В гипертерминале на команду n , выдаёт номер карты. которая лежит на картридере.
Но через плк не хочет выдавать ничего.
Я прописываю 'n' в строке Line SetByte , интерфейс захватил, всё норм.Показывает 1 байт передан.
GetByte молчит.
Может это от-того что 232 висит в модбасе в плк?

Сергей Борисович
15.08.2013, 18:24
Почему в гипертерминале картридер отвечает, а в плк не хочет.
Настройки проверял, всё вроде правильно.
Я использую CFC в программе при использовании библиотеки UNM, может как-то это влияет?

Сергей Борисович
19.08.2013, 11:07
В гипертерминале нажимая n сразу выдаёт номер карточки, которая лежит на картридере, Enter даже не надо нажимать, в отличие от работы с модемом ПМ01, где после ввода команда надо жать Enter.
Перехватываю интерфейс.
Прописываю 'n' в строке Line SetByte
и 1 в Len.
GetByte молчит.
Что не так, кто-нибудь подскажет?

Сергей Борисович
19.08.2013, 16:21
В описании библиотеки UNM, в примере использования, написано,
(*Набор заданного номера*)
If SetByte(0,‘ATDT89161234567$N$R’,5) !=1 then
Что такое $N$R в конце номера, кто скажет?

capzap
19.08.2013, 16:24
это символы конца, если в байтах то это 10 и 13 латиницы

Сергей Борисович
19.08.2013, 18:26
это символы конца, если в байтах то это 10 и 13 латиницы
Конца чего?
Строки, команды.
А в моём случае тоже надо в конце символы писать?

Сергей Борисович
20.08.2013, 16:20
Как составлять строку Line, где-то есть описание, инструкция, сканьте ссылку.
А то просто ничего не получается!

Сергей Борисович
22.08.2013, 13:02
Ситуацию разрулил, картридер опрашивается.
Проблема в том, что модуль RBDATA_TO_STRING не выдаёт всю строку, а по одному байту.
А как эти отдельные байты вывести в строку?

capzap
22.08.2013, 13:19
ну примеров то хватает по работе с смсками, там собираются строки чтоб отправить и чтоб принять

Сергей Борисович
24.01.2014, 12:18
Появилась необходимость использовать библиотеку UNM для работы с модемом.
В описании библиотеки есть файл, который имеет пример такой работы.
У меня вопрос, кто-нибудь тестировал этот пример, там около 20 ошибок, и даже если их исправить, модем отвечает ERROR
Например, If SetByte(0,‘ATZ$N$R’,5) !=1 ответ ERROR.
на запрос ‘AT$N$R’, по идее должен отвечать ОК, а в ответ ERROR.
Может есть где опробованный пример работы с модемом.
Жду ответа!