Передача и приём данных
-
Sergey Ivanov
- expert
- Сообщения: 1217
- Зарегистрирован: 01 мар 2009, 20:54
- Награды: 5
- Версия LabVIEW: 2018
- Откуда: Санкт-Петербург, Кронштадт
- Благодарил (а): 11 раз
- Поблагодарили: 1 раз
- Контактная информация:
Передача и приём данных
Всем привет.
С микроконтроллера передаю 9 переменных, длина каждой переменной 4 байта (всего 36 байт). Передаю по RS232 со скоростью 19200 бит/с (24 байта/10 мс).
Передаю следующим образом:
Принимаю на ПК вот так: Но, получается так, что данные теряется и я не могу понять где теряются . Или как правильнее организовать передачу данных без потери и с максимально возможносй скоростью ?
С микроконтроллера передаю 9 переменных, длина каждой переменной 4 байта (всего 36 байт). Передаю по RS232 со скоростью 19200 бит/с (24 байта/10 мс).
Передаю следующим образом:
Принимаю на ПК вот так: Но, получается так, что данные теряется и я не могу понять где теряются . Или как правильнее организовать передачу данных без потери и с максимально возможносй скоростью ?
Добро пожаловать на http://rk-stud.ru/
-
Jakob Brontfeyn
- expert
- Сообщения: 1729
- Зарегистрирован: 28 фев 2008, 11:01
- Награды: 6
- Благодарил (а): 1 раз
- Контактная информация:
Re: Передача и приём данных
а почему не пеpeдать сразу всю строку 38 байт, потом пауза ну пусть 20мс ?
И прием будет проще сделать без всякой VISA
И прием будет проще сделать без всякой VISA
-
Sergey Ivanov
- expert
- Сообщения: 1217
- Зарегистрирован: 01 мар 2009, 20:54
- Награды: 5
- Версия LabVIEW: 2018
- Откуда: Санкт-Петербург, Кронштадт
- Благодарил (а): 11 раз
- Поблагодарили: 1 раз
- Контактная информация:
Re: Передача и приём данных
у меня пауза в микроконтроллере, который передаёт 10 мс (меньше нельзя). а передавать, скорее всего, придётся больше, чем 36 байт. (около 100, думаю). за 10 мс на скорости 19200 б/с можно передать только 24 байта, поэтому, и разделил по итерациям цикла
Добро пожаловать на http://rk-stud.ru/
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Передача и приём данных
Нужно как то обозначить пакет, иначе будет туфта. Как ты хочешь понять что пакет начинается с определённого места? Ты ведь можешь начать принимать например с пятого символа, и как ты поймёшь где начало?
А пауза необязательна, можно передавать без паузы.
А пауза необязательна, можно передавать без паузы.
-
Jakob Brontfeyn
- expert
- Сообщения: 1729
- Зарегистрирован: 28 фев 2008, 11:01
- Награды: 6
- Благодарил (а): 1 раз
- Контактная информация:
Re: Передача и приём данных
загляни для информации
http://labviewportal.org/viewtopic.php? ... %8B#p41291
http://labviewportal.org/viewtopic.php? ... %8B#p41291
-
Sergey Ivanov
- expert
- Сообщения: 1217
- Зарегистрирован: 01 мар 2009, 20:54
- Награды: 5
- Версия LabVIEW: 2018
- Откуда: Санкт-Петербург, Кронштадт
- Благодарил (а): 11 раз
- Поблагодарили: 1 раз
- Контактная информация:
Re: Передача и приём данных
ну я пометил исходный пакет, который не был поделён началом (S) и концом (Z). или я так понял, что надо пометить кусок от пакета ?Eugen Graf писал(а):Нужно как то обозначить пакет, иначе будет туфта. Как ты хочешь понять что пакет начинается с определённого места? Ты ведь можешь начать принимать например с пятого символа, и как ты поймёшь где начало?
А пауза необязательна, можно передавать без паузы.
спасибо. поизучаюJakob Brontfeyn писал(а):загляни для информации
http://labviewportal.org/viewtopic.php? ... %8B#p41291
Добро пожаловать на http://rk-stud.ru/
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Передача и приём данных
Ну тогда нормально, при конфигурации поставь сверху Termination Character = "Z". А количество байт для чтения сделай чуть больше, чем размер пакета.Sergey Ivanov писал(а):ну я пометил исходный пакет, который не был поделён началом (S) и концом (Z). или я так понял, что надо пометить кусок от пакета ?Eugen Graf писал(а):Нужно как то обозначить пакет, иначе будет туфта. Как ты хочешь понять что пакет начинается с определённого места? Ты ведь можешь начать принимать например с пятого символа, и как ты поймёшь где начало?
А пауза необязательна, можно передавать без паузы.
спасибо. поизучаюJakob Brontfeyn писал(а):загляни для информации
http://labviewportal.org/viewtopic.php? ... %8B#p41291
-
Sergey Ivanov
- expert
- Сообщения: 1217
- Зарегистрирован: 01 мар 2009, 20:54
- Награды: 5
- Версия LabVIEW: 2018
- Откуда: Санкт-Петербург, Кронштадт
- Благодарил (а): 11 раз
- Поблагодарили: 1 раз
- Контактная информация:
Re: Передача и приём данных
а как это сделать ?Eugen Graf писал(а): Ну тогда нормально, при конфигурации поставь сверху Termination Character = "Z". А количество байт для чтения сделай чуть больше, чем размер пакета.
Добро пожаловать на http://rk-stud.ru/
-
IvanLis
- guru
- Сообщения: 5467
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 28 раз
- Поблагодарили: 87 раз
Re: Передача и приём данных
для твоего случая "Z"=90 а почему в качестве терминатора не используешь символ окончания строки или перевода корреткиSergey Ivanov писал(а):а как это сделать ?
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
-
Sergey Ivanov
- expert
- Сообщения: 1217
- Зарегистрирован: 01 мар 2009, 20:54
- Награды: 5
- Версия LabVIEW: 2018
- Откуда: Санкт-Петербург, Кронштадт
- Благодарил (а): 11 раз
- Поблагодарили: 1 раз
- Контактная информация:
Re: Передача и приём данных
IvanLis писал(а):для твоего случая "Z"=90 а почему в качестве терминатора не используешь символ окончания строки или перевода корреткиSergey Ivanov писал(а):а как это сделать ?
Иван, подскажи, пожалуйста. Почему именно 90 ? Я сначала подумал, что это код в ASCII, но это вроде не так.
Ну можно и символ окончания строки, просто решил вот, используя Z
Добро пожаловать на http://rk-stud.ru/
-
Oleg B.
- leader
- Сообщения: 674
- Зарегистрирован: 25 сен 2011, 11:30
- Награды: 2
- Версия LabVIEW: 5 .. 2021
- Откуда: Israel
- Контактная информация:
Re: Передача и приём данных
IvanLis писал(а):для твоего случая "Z"=90
Именно, что так - "Z" = 90 (decimal) = 5A (hexadecimal)Sergey Ivanov писал(а):Почему именно 90 ? Я сначала подумал, что это код в ASCII, но это вроде не так.
veni, vidi, phallomorphi
-
Sergey Ivanov
- expert
- Сообщения: 1217
- Зарегистрирован: 01 мар 2009, 20:54
- Награды: 5
- Версия LabVIEW: 2018
- Откуда: Санкт-Петербург, Кронштадт
- Благодарил (а): 11 раз
- Поблагодарили: 1 раз
- Контактная информация:
Re: Передача и приём данных
ну вот я тоже сначала так подумал, но потом таблицу в википедии посмотрел. это ошибка в таблице или я что-то не понимаю опять ?
Добро пожаловать на http://rk-stud.ru/
-
IvanLis
- guru
- Сообщения: 5467
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 28 раз
- Поблагодарили: 87 раз
Re: Передача и приём данных
на счет приведенной таблицы ничего сказать не могуSergey Ivanov писал(а):ну вот я тоже сначала так подумал
но можно самому проверить: http://ascii.org.ru/
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
- 13 Ответы
- 2454 Просмотры
-
Последнее сообщение rsv
-
- 3 Ответы
- 874 Просмотры
-
Последнее сообщение IvanLis
-
- 13 Ответы
- 1224 Просмотры
-
Последнее сообщение Boxa
-
- 0 Ответы
- 503 Просмотры
-
Последнее сообщение Juri
-
- 3 Ответы
- 272 Просмотры
-
Последнее сообщение AndreyDmitriev