Страница 1 из 1

Обработчик данных с Serial

Добавлено: 02 май 2018, 18:51
Anton.M
Всем Доброго Времени Суток!
Не могу придумать обработчик данных, приходящих через Serial от приемника (радиомодема). Посылки приходят типа XX80000000-000 с переносом строки на конце. Когда они приходят раз в секунду, подпрограмма их обрабатывает, убирает "/n" и посылает уведомление (14 символов) в основную программу - все работает и обрабатывается. Но как приходит несколько посылок сразу, т.е.:
QR100ef4aa-012
FN107bcca3-052
BC000003ca-021
Обработчик просто начинает или посылать в открытую (Ошибка по Scan From String) или сразу отсылает уведомление в 28-42 символа, и естественно вылетает в ошибку.
Попробовал разбить эту посылку посимвольно (16-16 или 16-16-16), но почему-то Labview выдает к Scan From String текст типа "003e1-012", т.е. последние 8 символов посылки.
ZIaNgnc1VRQ[1].jpg
Причину ошибки я в принципе вижу, я использую параметр "bytes at port", он наполняется (16-18-20-22) и тут же выскакивает ошибка... Как бороться с этим? Может использовать другой параметр?

Может кто сталкивался с таким, я уж не знаю куда копать - с утра на этом засел.
Заранее спасибо!

Re: Обработчик данных с Serial

Добавлено: 02 май 2018, 20:11
IvanLis
Anton.M писал(а):Посылки приходят типа XX80000000-000 с переносом строки на конце.
Правильно сконфигурируйте VISA.
У Вас явно задан терминальный символ = с переносом строки на конце.
Тогда пакеты будут делиться не по таймингу, а по терминатору. Который кстати можно отбросить, и не нужно будет ничего "отбрасывать".
Непонятно только одно, Вы пишите, что принимаете 16 символов, отбрасываете "/n" и получаете 14, но ведь "/n"=1 символ.

Почитайте например: http://labviewportal.org/viewtopic.php?f=22&t=6348