Вернувшись к старой задаче, с помощью примеров разобрался более менее с общим подходом к получению данных. Но так и не могу понять как лучше решить задачу разбора потока данных. Например приходит поток данных, в определенном формате. Кадр состоит из шапки и данных. Поток идет непрерывно.
Задачи, с которыми проблема: 1) Шапку надо детектировать, по коду начала кадра 2) После детектирования начала кадра начинать разбор и выбирать из шапки информацию о кадре. (Номер кадра, время, и т.д.) 3) Разбирать данные из тела кадра и выводить на график. Или несколько графиков, если в потока передается информация о нескольких каналах.
Проблема в том какие инструменты использовать для этого. Как правильнее определять маркер начала кадра? И только после этого начинать анализ и выборку данных. Как выбирать данные из потока для вывода на разные графики (многоканальный вариант)?
В поисках решения, наткнулся на CAN Channels, но так и не понял стоит ли использовать это для моих целей или нет.
Скорость: 19200
Алгоритм который мне кажется подходящим: 1) Если последовательность байтов, совпадает с числами (массивом), тогда 2) Выбераем части которые по порядку относятся к шапке и запоминаем их 3) После завершения части которая является шапкой, направить данные на график или если многоканальный вариант, тогда 4) Каждый первый байт на первый график, второй байт на второй график и т.д. 5) Завершить вывод на график(и) после определенного кол-ва байт или маркера конца кадра.
Как это реализовать с помощью инструментов Labview, сложно понять. По крайней мере грамотно. Так же как я понимаю проверять на маркер начала кадра нужно всегда, на всякий случай. Или же все таки только до первого совпадения, а далее пытаться разобрать кадр по всей последовательности действий?
Буду благодарен за советы и примеры.
|