|
1 / 1 / 0
Регистрация: 14.08.2017
Сообщений: 61
|
|||||||||||
Подключение LinPAC LP-5231 к ПК через Com-Port10.04.2023, 09:26. Показов 1369. Ответов 8
Всем доброго времени суток!
У меня имеется промышленный ПК LinPAC LP-5231 и обычный компьютер. На LinPAC стоит Linux, на обычном стоит винда. Мне нужно заставить их дружить через com-port. Вроде бы и дружат, но как-то не серьёзно. Код на си под Linux:
Код на винде пишу на шарпе:
И там и там стоит скорость 9600. А теперь самое интересное, если я со стороны винды понижаю скорость до 4800 или со стороны линукса повышаю до 19200, то всё работает как надо. Как так? Почему на 9600 оно не может работать? На линуксе пробовал конфигурировать порт через stty на 9600 и это не помогает. Со стороны винды стоит свисток USB-Serial CH340.
0
|
|||||||||||
| 10.04.2023, 09:26 | |
|
Ответы с готовыми решениями:
8
Подключение к Arduino через com-port Подключение проекта на C# к Proteus через Com-Port RS-232 Подключение к com port |
|
Windows must die
|
|
| 10.04.2023, 09:43 | |
|
Ядро же буферизует, поэтому нет вообще смысла ожидать, что у тебя "за один присест" придет именно нужное количество байт.
Просто заведи отдельный поток на считывание. Копи данные в циклический буфер, а как дойдешь до разделителя — выставляй флаг готовности принятой строки, чтобы в другом потоке можно было их принять. И лучше данные передавать в строковой форме, тогда можно их завершать обычным "\n". В случае с бинарными придется или городить задержки (как в доисторическом убогом модбасе, которым вменяемые люди в 21 веке точно пользоваться не будут), либо вводить условные разделители и надеяться, что в потоке данных их не встретится. P.S. А какой смысл два компа связывать по 485? Чем тебя ethernet не устраивает? Открой сокет, настрой его SEQ_PACKET, и будет тебе атомарность передачи (если, конечно, не попытаешься слишком много данных отправлять).
0
|
|
|
1 / 1 / 0
Регистрация: 14.08.2017
Сообщений: 61
|
|
| 10.04.2023, 10:12 [ТС] | |
|
Спасибо за быстрый ответ.
Связываю, потому что на винде эмулирую устройство которое будет подключаться к линуксу. Мне нужно данные получать в бинарном виде, как я это в шарпе и отправляю. Почему тогда, если я с винды отправляю 16 или меньше байт, то ret мне показывает то число, которое я отправляю с винды, а если больше 16, то разделяется сообщение на 16 + остаточные байты? Как это так ядро буфферизирует и строго на 16 байт первые?
0
|
|
|
|
||
| 10.04.2023, 10:27 | ||
|
0
|
||
|
Windows must die
|
|
| 10.04.2023, 11:20 | |
|
Если это устройство - разрабатываемое кем-то из вашей команды, то лучше сразу поменять протокол на текстовый, чтобы в будущем не было геморроя. Или завершать каждую посылку, скажем, числом 0xDEADBEEF и т.п.
Но нельзя надеяться на то, что при напряженном обмене данными пакеты будут передаваться атомарно. Не по теме: Я вот намучился с убогим модбасом: есть мастер, есть слейв. А с компьютера мне нужно читать протокол и выставлять в сеть данные. И вот как раз из-за убогости модбаса очень часто возникает ситуация, когда принимается часть пакета (т.к. ядро-то буферизует данные, ему плевать на эти задержки в 3.5 символа и т.п.). Надо будет делать аппаратный преобразователь modbus-usb (готовый вряд ли пойдет: у них протоколы обычно совершенно невменяемые, а многие еще и только под форточками работают).
0
|
|
|
754 / 351 / 90
Регистрация: 07.01.2023
Сообщений: 1,451
|
||
| 10.04.2023, 12:28 | ||
|
0
|
||
|
Windows must die
|
|
| 10.04.2023, 13:12 | |
|
Azathtot, ключевая фраза: пассивно слушаем линию! Когда пакеты слишком часто бегают, невозможно определить, где начало! Нужно на STM32 делать преобразователь. Там заодно практически аппаратно модбас можно реализовать.
Не по теме: и лишний раз пожелаю всего плохого идиотам, которые в 21 веке пихают в новые железки протокол, разработанный для аналоговых телефонных сетей 50 лет назад!
0
|
|
| 10.04.2023, 13:25 | |
|
Не по теме: ... - сказал фанат KOI8-R, появившейся 30 лет назад для 8-битных компьютеров.
0
|
|
| 10.04.2023, 16:07 | ||
|
Не по теме:
0
|
||
| 10.04.2023, 16:07 | |
|
Помогаю со студенческими работами здесь
9
Активное подключение к фтп. PORT Интернет через VPN соединение как через прокси в формате IP:PORT Через что предпочтительнее подключить монитор, через HDMI или Display Port? Переподключить подключение POTS модема, навешенного на com port 3.95 LCD модуль (parallel port) подключение к ESP 32 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
|
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений.
9TO2GP2bpX4
a42b81fb172ffc12ca589c7898261ccb/
https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/
Слева синяя линия -. . .
|
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. .
Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
|
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла:
Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
|
|
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-text-sdl3-c. zip
finish-text-sdl3-cpp. zip
|
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
|
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo
Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло.
Но на выплатах по больничным это. . .
|
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Данные берутся из. . .
|