Обработка строки из RFID
- Войдите на сайт для отправки комментариев
Пнд, 13/04/2015 - 13:05
Добрый день. Есть RFID считыватель IPR-6 подключенный к Arduino, но он при счытывании кода карточки передает в следующем виде
0 байт - начало передачи 23h
1-10 байт - номер карточки
11 байт - контрольная сумма
12 байт - 0Dh конец стрки
Как выделить со всего пакета толко 1-10 байты?
Передает какой тип данных? Если строку, то её легко можно обрезать:
где needBytes это строка с результатом, а stringFromRFIDReader - строка с данными от рфид читалки
Большое спасибо. Завтра проверю
Если строку, то её легко можно обрезать:
где needBytes это строка с результатом, а stringFromRFIDReader - строка с данными от рфид читалки
Спасибо, заработало. Но теперь столкнулся с другой проблемой. При повторной отправки данных в порт, он мне возвращает старые даные, к примеру:
первый раз отправляю код первой карты в формате который получаю со счтитывателя @15df15d1vr1 получаю 15df15d1vr. Потом отправляю код второй карты @15fg2df1g8g, а получаю 15df15d1vr.
Как очитить буфер и считать новый код карты?
По крайней мере. В начале лучше все-таки инициализировать int i =0;
А после закрытия массива обнулить указатель.
//закрываем массив
buffer[i++]='\0';
i =0;
Да и буфер можно сделать покороче, как раз на длинну посылки в 13 байт + \0
По крайней мере. В начале лучше все-таки инициализировать int i =0;
А после закрытия массива обнулить указатель.
//закрываем массив
buffer[i++]='\0';
i =0;
Да и буфер можно сделать покороче, как раз на длинну посылки в 13 байт + \0
спасибо, заработало. завтра буду подключать считыватель
Попытался оптимизировать под Ваш протокол. Без лишнего буфера.
Спасибо.
Столкнулся еще с одной проблеммой. Для того чтобы считывать карточки на считыватель нужно отправить команду "read card". но считыватель запускается через 2 секунды после запуска ардуины.
Написал так:
но не помогло.
Как отправить команду через 5с после включения
Что мешает
Serial1.println(
"read card"
); в начало loop() ставить?
CityCat а смысл?. Нужно послать один раз, а не долбать постоянно.
MaxShadow
Идея правильная, непонятно почему не работает.
Считыватель не посылает в ответ никакого сообщения? типа "Ok"?
Нет не посылает
пока решил так