Форум » » текст с Com-порта » Ответить

текст с Com-порта

marty_iron: Здравствуйте, снимаю уровни сигнала по команде с ком порта. Но иногда он почему то разбивает ее на несколько кусков, а иногда нет... И вот когда неудачно разбивает - нужная мне цифра сдвигается во вторую половину и я не могу в симпл+ модуле ее нормально считать. Подскажите почему он делит на строки и каким элементом ее можно собрать вместе, если можно? Спасибо

Ответов - 13

Alexandr: Проще всего использовать buffer input и очищать его только после прихода нужного значения.

Игорь K.: Классическая задачка повышения целостности детерминированного сигнала. Если знаете, чем должна закончиться строка целостных данных, и информативная длина, то эти два параметра помогут с помощью Serial Gather.

marty_iron: Игорь K. а если у меня разделитель \x0A\x0D, то что мне писать в поле delimeter?


Игорь K.: Очень странный разделитель. Его и указывайте, формат описан в Help - h0A0D

marty_iron: Игорь K. вот я так и пишу - он мне выдает что неверный формат разделитель такой, потому что это ответ устройства на опрос статуса все нашел!!! 0Ah - спасибо!

Игорь K.: Там буковка "h" перед или позади символа

marty_iron: Игорь K. спасибо, да нашел! а можно еще вопрос - а нет какого-то элемента еще? всем gather хорош, но его одна особенность портит выполнение задачи - он сохраняет в памяти остаток строки что был после разделителя и плюсует его к новой строке... у меня просто возвращается уровень звука, а там значения от 0 до 64... т е я не могу точно сказать длину строки, она может отличаться на 1 символ...

Игорь K.: Берите на один символ больше. Есть ещё в Simpl+ операнд Gather. Там как всегда, нужно следить за буфером и переменными.

Igor: marty_iron, думаю, прежде чем искать способ решения данной проблемы нужно поискать причину ее возникновения - проверить и перепроверить настройки интерфейса (скорость, четность, управление потоком) как на стороне Crestron, так и на стороне управляемого оборудования.

Вячеслав: Igor пишет: , думаю, прежде чем искать способ решения данной проблемы нужно поискать причину ее возникновения - проверить и перепроверить настройки интерфейса (скорость, четность, управление потоком) как на стороне Crestron, так и на стороне управляемого оборудования. Да ладно, улыбнуло Асинхронный последовательный интерфейс подразумевает посимвольную передачу ASCII символов и одному Crestron известно в какой момент он посчитает что пора выдать набор принятых символов в программу. Подозреваю, это либо тайминг аппаратный фиксирующий превышение межсимвольного интервала, либо издержки загрузки процессора при обработке прерываний от разных интерфейсов. P.S SIMPL+ с buffer_input рулит, с Gather время потртатите только

Игорь K.: Что за девайс? Давайте, колитесь кто производитель.

СергейК: Чтоб не поднимать новую тему вопрос смежный: нужно считать с сайта всю информацию для нахождения нужной инфы. Но, ведь SIMPL+ вмещает только 65534 байта (знака)! Как получить всю информацию, если сайт присылает больше текста?

Вячеслав: Можно создать несколько массивов (или структур) и наполнять их данными последовательно, предварительно очистив их. Обработку потом выполнять последовательно по всем массивам до первого пустого массива.



полная версия страницы