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

Re: Приходят не все данные

Добавлено: 10 июл 2019, 13:55
GT21
IvanLis писал(а):
GT21 писал(а):А где именно отключать? Он у меня включен в Write, в Read такой функции нет
VISA Configure Serial Port VI
Вход Enable Termination Char, по умолчанию True, Вам необходимо подключить константу и установить значение False
Ну да, про него и я говорил. Если я его отключаю, то у меня не работает, выдает ошибку -1073807339 в VISA Read
P.S.: при этом "\n" тоже ведь приписывать в команды не надо?

Re: Приходят не все данные

Добавлено: 10 июл 2019, 21:31
IvanLis
GT21 писал(а):Ну да, про него и я говорил. Если я его отключаю, то у меня не работает, выдает ошибку -1073807339 в VISA Read
Вы его оставьте, а про количество байт забудьте.
Если необходимо набрать какое-то количество байт, то накапливайте их в буфере.
Но так у Вас не должно быть проблем с разбором посылки.
GT21 писал(а):P.S.: при этом "\n" тоже ведь приписывать в команды не надо?
кажется да, но ник-то не мешает Вам попробовать и проверить

Re: Приходят не все данные

Добавлено: 11 июл 2019, 09:01
GT21
IvanLis писал(а): Вы его оставьте, а про количество байт забудьте.
Я к тому, что начало сообщения "#510000" говорит о том, что осциллограф отправил мне 10000 точек. Неужели он врет?
И почему он то нормальное количество выдает, то обрывок, хотя я ничего в программе не меняю, просто перезапускаю?

И еще, по поводу буфера: он есть какой-нибудь стандартной VI? А то, чувствую, я буфер делаю не очень правильно

Re: Приходят не все данные

Добавлено: 11 июл 2019, 13:25
IvanLis
GT21 писал(а):Я к тому, что начало сообщения "#510000" говорит о том, что осциллограф отправил мне 10000 точек. Неужели он врет?
И почему он то нормальное количество выдает, то обрывок, хотя я ничего в программе не меняю, просто перезапускаю?
Послушайте, а Вы вообще описание протокола информационного обмена читали?
Там должно быть указано использование или неиспользование терминатора, какой символ используется в качестве него.
Формат команд и ответов.

Возможно, что у Вас терминатора нет или используется другой символ. Т.к. в протоколе должно быть предусмотрена его изоляция, т.е. он не может больше нигде встречаться, только в конце посылки.

Стандартных функция для формирования буфера я не знаю, всегда используется сдвиговый регистр, разве что в палитре PtByPt.